@solarisdk/core 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/LICENSE +17 -13
  2. package/README.md +5 -1
  3. package/dist/chunked-download.d.ts +0 -1
  4. package/dist/chunked-download.js +0 -11
  5. package/dist/desktop.d.ts +0 -1
  6. package/dist/desktop.js +0 -52
  7. package/dist/errors.d.ts +10 -1
  8. package/dist/errors.js +16 -39
  9. package/dist/handle.d.ts +14 -2
  10. package/dist/handle.js +91 -234
  11. package/dist/http.d.ts +2 -1
  12. package/dist/http.js +1 -49
  13. package/dist/ids.d.ts +6 -0
  14. package/dist/ids.js +3 -0
  15. package/dist/image.d.ts +0 -1
  16. package/dist/image.js +0 -40
  17. package/dist/index.d.ts +4 -4
  18. package/dist/index.js +4 -5
  19. package/dist/sandbox.d.ts +0 -1
  20. package/dist/sandbox.js +0 -6
  21. package/dist/template-client.d.ts +0 -1
  22. package/dist/template-client.js +3 -27
  23. package/dist/transport.d.ts +9 -2
  24. package/dist/transport.js +64 -102
  25. package/dist/types.d.ts +19 -7
  26. package/dist/types.js +0 -7
  27. package/dist/volume-client.d.ts +0 -1
  28. package/dist/volume-client.js +0 -17
  29. package/dist/ws.d.ts +0 -1
  30. package/dist/ws.js +0 -16
  31. package/package.json +5 -4
  32. package/dist/chunked-download.d.ts.map +0 -1
  33. package/dist/chunked-download.js.map +0 -1
  34. package/dist/desktop.d.ts.map +0 -1
  35. package/dist/desktop.js.map +0 -1
  36. package/dist/errors.d.ts.map +0 -1
  37. package/dist/errors.js.map +0 -1
  38. package/dist/handle.d.ts.map +0 -1
  39. package/dist/handle.js.map +0 -1
  40. package/dist/http.d.ts.map +0 -1
  41. package/dist/http.js.map +0 -1
  42. package/dist/image.d.ts.map +0 -1
  43. package/dist/image.js.map +0 -1
  44. package/dist/index.d.ts.map +0 -1
  45. package/dist/index.js.map +0 -1
  46. package/dist/sandbox.d.ts.map +0 -1
  47. package/dist/sandbox.js.map +0 -1
  48. package/dist/template-client.d.ts.map +0 -1
  49. package/dist/template-client.js.map +0 -1
  50. package/dist/transport.d.ts.map +0 -1
  51. package/dist/transport.js.map +0 -1
  52. package/dist/types.d.ts.map +0 -1
  53. package/dist/types.js.map +0 -1
  54. package/dist/volume-client.d.ts.map +0 -1
  55. package/dist/volume-client.js.map +0 -1
  56. package/dist/ws.d.ts.map +0 -1
  57. package/dist/ws.js.map +0 -1
package/dist/transport.js CHANGED
@@ -1,36 +1,11 @@
1
- // `ControlChannel` — the shared control-WebSocket transport used by both
2
- // {@link Sandbox} and {@link Desktop}.
3
- //
4
- // Wire protocol over the control WS is newline-delimited JSON. THREE kinds of
5
- // frame travel on the same socket and must be dispatched by SHAPE, not by an
6
- // assumption of one-reply-per-request:
7
- //
8
- // 1. JSON-RPC reply `{id, ok, result?|error?}` — resolves the call `id`.
9
- // 2. v1 streamed exec `{id, stream:"stdout"|"stderr", data}` — routed to
10
- // the per-`id` stream handler; the terminal frame is a normal reply (1).
11
- // 3. v2 async STREAM frame `{type:"cmd.data"|"cmd.exit"|"pty.data"|"fs.event",
12
- // cmdId|ptyId|watchId, ...}` — these are NOT correlated to a request id;
13
- // they are dispatched by `type` to a handler keyed on the stream's own id
14
- // (cmdId/ptyId/watchId). `cmd.exit` is terminal for a started command.
15
- //
16
- // The channel owns reconnection-friendly state (pending map, stream handlers,
17
- // frame handlers) so handles can layer ergonomic methods on top.
18
1
  import { ActionError, ConnectionError, SolariError, TimeoutError, } from "./errors.js";
19
2
  import { openWebSocket } from "./ws.js";
20
3
  const DEFAULT_CALL_TIMEOUT_MS = 300_000;
21
4
  const CONNECT_TIMEOUT_MS = 15_000;
22
- // A freshly created/restored session's control WS can transiently fail its
23
- // upstream handshake: right after a snapshot restore the guest accepts only ONE
24
- // vsock control connection at a time for a brief window, so the host can answer
25
- // a concurrent /control upgrade with a 502 `guest_unreachable` while it's busy
26
- // (e.g. tearing down sibling sessions). The VM is live and billable — a blip
27
- // like that must not be fatal. Retry a fast-failing connect a couple of times
28
- // with short backoff; the next attempt lands on a now-ready guest. We do NOT
29
- // retry a full connect TIMEOUT (that's a genuinely hung dial, not a transient).
30
5
  const CONNECT_MAX_ATTEMPTS = 3;
31
6
  const CONNECT_RETRY_BASE_MS = 150;
32
7
  const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
33
- /** The shared control-WS transport. Construct one per live session handle. */
8
+ const DEFAULT_IDLE_CLOSE_MS = 3000;
34
9
  export class ControlChannel {
35
10
  controlUrl;
36
11
  ws = null;
@@ -39,46 +14,28 @@ export class ControlChannel {
39
14
  nextId = 1;
40
15
  pending = new Map();
41
16
  streamHandlers = new Map();
42
- /** v2 async frame handlers keyed by `type` then by stream-id. */
43
17
  frameHandlers = new Map();
44
- /**
45
- * Frames that arrived before their handler was registered, keyed by
46
- * `type streamId`. The guest can stream `cmd.data`/`cmd.exit` onto the
47
- * wire BEFORE the `cmd.start` reply (the output pumps start before the reply
48
- * is sent), so frames routinely beat the caller's onFrame() registration.
49
- * We stash them here and flush on registration so no early output is lost.
50
- * Bounded to avoid unbounded growth from frames whose handler never arrives.
51
- */
52
18
  orphanFrames = new Map();
53
19
  orphanCount = 0;
54
20
  static MAX_ORPHAN_FRAMES = 1024;
55
- /**
56
- * Per-stream "the channel closed" callbacks, keyed by stream id (cmdId/ptyId).
57
- * A long-running `commands.run` awaits an exit that arrives as an async frame,
58
- * NOT a pending RPC reply — so a channel drop must reject it through here, or
59
- * `wait()` hangs forever.
60
- */
61
21
  streamClosers = new Map();
62
22
  callTimeoutMs;
23
+ idleCloseMs;
24
+ idleTimer;
63
25
  headers;
64
26
  closed = false;
65
27
  constructor(controlUrl, config = {}) {
66
28
  this.controlUrl = controlUrl;
67
29
  this.callTimeoutMs = config.callTimeoutMs ?? DEFAULT_CALL_TIMEOUT_MS;
30
+ this.idleCloseMs = config.idleCloseMs ?? DEFAULT_IDLE_CLOSE_MS;
68
31
  this.headers = config.headers ?? {};
69
32
  }
70
33
  get connected() {
71
34
  return this.ws?.isOpen ?? false;
72
35
  }
73
- /** Point the channel at a (possibly new) control URL — used by reconnect/resume. */
74
36
  setControlUrl(url) {
75
37
  this.controlUrl = url;
76
38
  }
77
- /**
78
- * Open the control WebSocket. Idempotent: concurrent callers share one
79
- * in-flight connect, and an already-open socket resolves immediately.
80
- * Transient upstream-handshake failures are retried (see CONNECT_MAX_ATTEMPTS).
81
- */
82
39
  connect() {
83
40
  if (this.connected)
84
41
  return Promise.resolve();
@@ -88,19 +45,17 @@ export class ControlChannel {
88
45
  this.connecting = this.#connectWithRetry();
89
46
  return this.connecting;
90
47
  }
91
- /** Retry a fast-failing connect a few times; surface the last error otherwise. */
92
48
  async #connectWithRetry() {
93
49
  let lastErr = new ConnectionError("connect failed");
94
50
  for (let attempt = 1; attempt <= CONNECT_MAX_ATTEMPTS; attempt++) {
95
51
  try {
96
52
  await this.#connectOnce();
97
53
  this.connecting = null;
54
+ this.#armIdleClose();
98
55
  return;
99
56
  }
100
57
  catch (err) {
101
58
  lastErr = err instanceof Error ? err : new ConnectionError(String(err));
102
- // Give up immediately if the caller closed the channel, or the dial hung
103
- // to the full timeout (not a transient — retrying just re-hangs).
104
59
  if (this.closed || lastErr instanceof TimeoutError)
105
60
  break;
106
61
  if (attempt < CONNECT_MAX_ATTEMPTS) {
@@ -111,7 +66,6 @@ export class ControlChannel {
111
66
  this.connecting = null;
112
67
  throw lastErr;
113
68
  }
114
- /** One connect attempt: open the socket, resolve on open, reject on error/timeout. */
115
69
  #connectOnce() {
116
70
  return new Promise((resolve, reject) => {
117
71
  let settled = false;
@@ -121,6 +75,12 @@ export class ControlChannel {
121
75
  settled = true;
122
76
  reject(new TimeoutError("connect", CONNECT_TIMEOUT_MS));
123
77
  }, CONNECT_TIMEOUT_MS);
78
+ let mine = null;
79
+ const current = (fn) => {
80
+ if (mine !== null && mine !== this.ws)
81
+ return;
82
+ fn();
83
+ };
124
84
  openWebSocket(this.controlUrl, this.headers, {
125
85
  onOpen: () => {
126
86
  if (settled)
@@ -129,9 +89,11 @@ export class ControlChannel {
129
89
  clearTimeout(timer);
130
90
  resolve();
131
91
  },
132
- onMessage: (data) => this.onMessage(data),
133
- onClose: (code, reason) => this.onClose(code, reason),
92
+ onMessage: (data) => current(() => this.onMessage(data)),
93
+ onClose: (code, reason) => current(() => this.onClose(code, reason)),
134
94
  onError: (err) => {
95
+ if (settled && mine !== null && mine !== this.ws)
96
+ return;
135
97
  if (!settled) {
136
98
  settled = true;
137
99
  clearTimeout(timer);
@@ -140,6 +102,7 @@ export class ControlChannel {
140
102
  },
141
103
  })
142
104
  .then((sock) => {
105
+ mine = sock;
143
106
  this.ws = sock;
144
107
  })
145
108
  .catch((err) => {
@@ -151,41 +114,53 @@ export class ControlChannel {
151
114
  });
152
115
  });
153
116
  }
154
- /**
155
- * Reconnect the control channel after a drop (re-opens the socket; pending
156
- * calls were already rejected on close). Stream/frame handlers registered by
157
- * `commands.start` / `pty.create` survive so callers can re-subscribe.
158
- */
159
117
  async reconnect() {
160
118
  if (this.connected)
161
119
  return;
162
- this.ws?.close();
163
- this.ws = null;
120
+ if (this.ws) {
121
+ const old = this.ws;
122
+ this.ws = null;
123
+ this.#failAll(new ConnectionError("Control channel replaced by a reconnect"));
124
+ old.close();
125
+ }
164
126
  this.connecting = null;
165
127
  await this.connect();
166
128
  }
167
- /** Register a "channel closed" callback for a stream id (cmdId/ptyId) so a
168
- * drop rejects its in-flight wait. Cleared on the stream's terminal frame.
169
- *
170
- * If the channel is ALREADY torn down when this is called, fire the callback
171
- * synchronously instead of storing it — otherwise the wakeup is lost forever.
172
- * A caller registers this AFTER the `cmd.start` reply resolves; if the channel
173
- * closed in that window `#failAll` has already drained `streamClosers`, so a
174
- * late `set()` would sit unreferenced and the command's `wait()` would hang.
175
- * (In JS's single-threaded loop microtask ordering usually saves us; in the
176
- * genuinely-concurrent ports it does not — this keeps all bindings identical.) */
177
129
  onStreamClose(id, cb) {
178
130
  if (this.closed || !this.ws || !this.ws.isOpen) {
179
131
  cb(new ConnectionError("Control channel closed"));
180
132
  return;
181
133
  }
182
134
  this.streamClosers.set(id, cb);
135
+ this.#armIdleClose();
183
136
  }
184
- /** Drop a previously-registered stream-close callback (terminal frame seen). */
185
137
  offStreamClose(id) {
186
138
  this.streamClosers.delete(id);
139
+ this.#armIdleClose();
140
+ }
141
+ #armIdleClose() {
142
+ if (this.idleTimer)
143
+ clearTimeout(this.idleTimer);
144
+ this.idleTimer = undefined;
145
+ if (this.idleCloseMs <= 0 || !this.ws || !this.ws.isOpen)
146
+ return;
147
+ if (this.pending.size > 0 || this.streamClosers.size > 0)
148
+ return;
149
+ for (const m of this.frameHandlers.values())
150
+ if (m.size > 0)
151
+ return;
152
+ this.idleTimer = setTimeout(() => {
153
+ this.idleTimer = undefined;
154
+ if (this.pending.size > 0 || this.streamClosers.size > 0)
155
+ return;
156
+ for (const m of this.frameHandlers.values())
157
+ if (m.size > 0)
158
+ return;
159
+ const ws = this.ws;
160
+ this.ws = null;
161
+ ws?.close();
162
+ }, this.idleCloseMs);
187
163
  }
188
- /** Reject every in-flight call + stream wait and drop all handler state. */
189
164
  #failAll(err) {
190
165
  for (const p of this.pending.values()) {
191
166
  clearTimeout(p.timer);
@@ -200,16 +175,12 @@ export class ControlChannel {
200
175
  this.orphanFrames.clear();
201
176
  this.orphanCount = 0;
202
177
  }
203
- /** Close the channel and reject any in-flight calls. */
204
178
  close() {
205
179
  this.closed = true;
206
180
  this.#failAll(new ConnectionError("Control channel closed"));
207
181
  this.ws?.close();
208
182
  this.ws = null;
209
183
  }
210
- // --- async frame subscriptions (v2) --------------------------------------
211
- /** Register a handler for an async-frame `type` keyed on its stream id.
212
- * Flushes any frames that arrived before this registration (see orphanFrames). */
213
184
  onFrame(type, id, handler) {
214
185
  let m = this.frameHandlers.get(type);
215
186
  if (!m) {
@@ -217,6 +188,7 @@ export class ControlChannel {
217
188
  this.frameHandlers.set(type, m);
218
189
  }
219
190
  m.set(id, handler);
191
+ this.#armIdleClose();
220
192
  const key = type + "\x1f" + id;
221
193
  const pending = this.orphanFrames.get(key);
222
194
  if (pending) {
@@ -226,11 +198,10 @@ export class ControlChannel {
226
198
  handler(f);
227
199
  }
228
200
  }
229
- /** Drop a previously-registered async-frame handler. */
230
201
  offFrame(type, id) {
231
202
  this.frameHandlers.get(type)?.delete(id);
203
+ this.#armIdleClose();
232
204
  }
233
- // --- transport -----------------------------------------------------------
234
205
  onMessage(chunk) {
235
206
  this.rxBuffer += chunk;
236
207
  let nl;
@@ -247,9 +218,8 @@ export class ControlChannel {
247
218
  frame = JSON.parse(line);
248
219
  }
249
220
  catch {
250
- return; // ignore non-JSON noise
221
+ return;
251
222
  }
252
- // (3) v2 async STREAM frame: dispatched by `type` + its own stream id.
253
223
  if (typeof frame.type === "string") {
254
224
  const streamId = frame.cmdId ?? frame.ptyId ?? frame.watchId ?? "";
255
225
  const handler = this.frameHandlers.get(frame.type)?.get(streamId);
@@ -257,8 +227,6 @@ export class ControlChannel {
257
227
  handler(frame);
258
228
  }
259
229
  else if (this.orphanCount < ControlChannel.MAX_ORPHAN_FRAMES) {
260
- // Handler not registered yet — stash for flush on onFrame() (guest can
261
- // stream output before the start-reply the caller awaits to subscribe).
262
230
  const key = frame.type + "\x1f" + streamId;
263
231
  let arr = this.orphanFrames.get(key);
264
232
  if (!arr) {
@@ -272,15 +240,12 @@ export class ControlChannel {
272
240
  }
273
241
  if (typeof frame.id !== "string")
274
242
  return;
275
- // (2) v1 streamed-exec frame: route to the per-id stream handler; the call
276
- // stays pending for its terminal {ok,...} reply.
277
243
  if (typeof frame.stream === "string") {
278
244
  const h = this.streamHandlers.get(frame.id);
279
245
  if (h)
280
246
  h({ stream: frame.stream, data: frame.data });
281
247
  return;
282
248
  }
283
- // (1) JSON-RPC reply.
284
249
  const p = this.pending.get(frame.id);
285
250
  if (!p)
286
251
  return;
@@ -297,29 +262,29 @@ export class ControlChannel {
297
262
  }
298
263
  onClose(code, reason) {
299
264
  this.ws = null;
300
- // Always tear down handler state + reject in-flight calls AND stream waits.
301
- // (Previously this early-returned when no RPC was pending, leaving a
302
- // command's exit-wait — which is frame-based, not a pending RPC — to hang
303
- // forever, and stale cmd/pty/orphan handlers registered against a dead VM.)
304
265
  this.#failAll(new ConnectionError(`Control channel closed (${code}${reason ? `: ${reason}` : ""})`));
305
266
  }
306
- /** Allocate the next opaque request id (string, per CONTRACTS §4). */
307
267
  newId() {
308
268
  return String(this.nextId++);
309
269
  }
310
- /**
311
- * Send one JSON-RPC call and await its correlated reply. `onStream` (v1)
312
- * receives intermediate `{id, stream, data}` frames for this id until the
313
- * terminal reply resolves the promise. `id` lets callers pre-allocate the
314
- * request id (so they can subscribe to v2 async frames keyed on the same id).
315
- */
316
- call(method, params, opts = {}) {
270
+ async call(method, params, opts = {}) {
317
271
  if (this.closed) {
318
- return Promise.reject(new ConnectionError("Control channel is closed"));
272
+ throw new ConnectionError("Control channel is closed");
319
273
  }
320
274
  if (!this.ws || !this.ws.isOpen) {
321
- return Promise.reject(new ConnectionError("Not connected — call connect() first"));
275
+ await this.connect();
276
+ if (this.closed)
277
+ throw new ConnectionError("Control channel is closed");
278
+ if (!this.ws || !this.ws.isOpen)
279
+ throw new ConnectionError("Not connected — call connect() first");
322
280
  }
281
+ if (this.idleTimer)
282
+ clearTimeout(this.idleTimer);
283
+ this.idleTimer = undefined;
284
+ const done = () => this.#armIdleClose();
285
+ return this.#send(method, params, opts).finally(done);
286
+ }
287
+ #send(method, params, opts) {
323
288
  const id = opts.id ?? this.newId();
324
289
  const frame = JSON.stringify({ id, method, params });
325
290
  const timeoutMs = opts.timeoutMs ?? this.callTimeoutMs;
@@ -358,7 +323,6 @@ function normalizeRpcError(err) {
358
323
  return { message: err };
359
324
  return { message: err.message ?? err.code ?? "Action failed", code: err.code };
360
325
  }
361
- /** Base64 → bytes, working in both Node and the browser. */
362
326
  export function base64ToBytes(b64) {
363
327
  const g = globalThis;
364
328
  if (typeof g.Buffer !== "undefined") {
@@ -370,7 +334,6 @@ export function base64ToBytes(b64) {
370
334
  out[i] = bin.charCodeAt(i);
371
335
  return out;
372
336
  }
373
- /** Bytes → base64, working in both Node and the browser. */
374
337
  export function bytesToBase64(bytes) {
375
338
  const g = globalThis;
376
339
  if (typeof g.Buffer !== "undefined") {
@@ -381,4 +344,3 @@ export function bytesToBase64(bytes) {
381
344
  bin += String.fromCharCode(bytes[i]);
382
345
  return g.btoa(bin);
383
346
  }
384
- //# sourceMappingURL=transport.js.map
package/dist/types.d.ts CHANGED
@@ -64,7 +64,10 @@ export interface DesktopLifecycleResponse {
64
64
  export interface CreateDesktopOptions {
65
65
  /** Image/template to restore from. Defaults to `"default"`. */
66
66
  template?: string;
67
- /** Time-to-live in seconds before the gateway auto-releases the session. */
67
+ /**
68
+ * Time-to-live in seconds before the gateway auto-releases the session.
69
+ * @deprecated Use {@link idleTimeoutMs} (milliseconds); `idleTimeoutMs` wins when both are set.
70
+ */
68
71
  ttlSeconds?: number;
69
72
  /**
70
73
  * VM isolation tier. Only `"dedicated"` (default) and `"hardened"` are
@@ -166,10 +169,7 @@ export type SandboxKind = "sandbox" | "desktop";
166
169
  * desktops — a desktop's display is per-VM, so the gateway refuses
167
170
  * `kind:"desktop"` with `isolation:"shared"`.
168
171
  * - `"dedicated"` (default): your own VM.
169
- * - `"hardened"`: your own VM with outbound network blocked. Verified
170
- * 2026-09-23 on staging (DNS and direct-IP outbound both timed out from
171
- * inside a hardened guest, against an identical control sandbox that
172
- * worked instantly) — not yet independently verified on prod. Not every
172
+ * - `"hardened"`: your own VM with outbound network blocked. Not every
173
173
  * host advertises this capability; the gateway refuses with
174
174
  * `409 HostCapabilityMissing` where it doesn't.
175
175
  */
@@ -219,6 +219,7 @@ export interface CreateSandboxOptions {
219
219
  * one is present, `idleTimeoutMs` wins. Kept for parity with the legacy
220
220
  * `/desktops` create shape, which has always accepted it — prefer
221
221
  * {@link idleTimeoutMs} in new code.
222
+ * @deprecated Use {@link idleTimeoutMs} (milliseconds).
222
223
  */
223
224
  ttlSeconds?: number;
224
225
  /** Boot from a snapshot (`snap_…`) instead of the golden template. */
@@ -652,6 +653,11 @@ export interface CommandOptions {
652
653
  cwd?: string;
653
654
  env?: Record<string, string>;
654
655
  user?: string;
656
+ /**
657
+ * Deadline for the command, in milliseconds: when it elapses the command is killed and the result has
658
+ * `timedOut: true` (`exitCode` -1). Defaults to 600 000 (`DEFAULT_COMMAND_TIMEOUT_MS`, the per-tier maximum the
659
+ * gateway accepts) for `run`; `start` has no deadline unless you pass one.
660
+ */
655
661
  timeoutMs?: number;
656
662
  /** Run detached (returns immediately; output still streams via callbacks). */
657
663
  background?: boolean;
@@ -663,6 +669,11 @@ export interface CommandResult {
663
669
  exitCode: number;
664
670
  stdout: string;
665
671
  stderr: string;
672
+ /**
673
+ * `true` when the command was cut off by its `timeoutMs` deadline (then `exitCode` is `-1` and `stdout`/`stderr` hold
674
+ * whatever arrived). Always present, on both the REST and the live-connection path.
675
+ */
676
+ timedOut: boolean;
666
677
  }
667
678
  /**
668
679
  * Body for the one-shot `POST /sandboxes/:id/exec` fast path — run a single
@@ -688,8 +699,10 @@ export interface CommandHandle {
688
699
  stream: "stdout" | "stderr";
689
700
  data: string;
690
701
  }) => void): void;
691
- /** Resolves with the exit code when the command exits. */
702
+ /** Resolves with the exit code when the command exits (`-1` if its `timeoutMs` deadline cut it off). */
692
703
  wait(): Promise<number>;
704
+ /** `true` once the `timeoutMs` deadline passed to `commands.start` has killed the command. */
705
+ readonly timedOut: boolean;
693
706
  /** Send a signal (default SIGTERM). */
694
707
  kill(signal?: number): Promise<void>;
695
708
  }
@@ -860,4 +873,3 @@ export interface FsSearchMatch {
860
873
  line: number;
861
874
  text: string;
862
875
  }
863
- //# sourceMappingURL=types.d.ts.map
package/dist/types.js CHANGED
@@ -1,8 +1 @@
1
- // Wire types for the Solari SDK (shared across @solarisdk/desktop + @solarisdk/sandbox).
2
- //
3
- // Per the repo rule, types are DUPLICATED on each side of a network boundary
4
- // and never imported across it. These shapes mirror docs/CONTRACTS.md §1 (the
5
- // SDK ⇆ Gateway public API) and §4 (the host-agent ⇆ guest-agent computer-use
6
- // JSON-RPC API, which the gateway tunnels over the control WebSocket).
7
1
  export {};
8
- //# sourceMappingURL=types.js.map
@@ -16,4 +16,3 @@ export declare class VolumeClient {
16
16
  /** Delete a volume's metadata (`DELETE /volumes/:id`; idempotent). */
17
17
  delete(volumeId: string): Promise<void>;
18
18
  }
19
- //# sourceMappingURL=volume-client.d.ts.map
@@ -1,15 +1,3 @@
1
- // `VolumeClient` — talks the SDK ⇆ Gateway `/volumes` HTTP API for durable,
2
- // session-independent storage (Part V.4). A volume is an S3-backed folder your
3
- // org owns; attach it to a session at create time and it persists across
4
- // pause/resume/recreate:
5
- //
6
- // const vol = await client.volumes.create({ name: "datasets" });
7
- // const sbx = await client.sandboxes.create({
8
- // volumes: [{ volumeId: vol.volumeId, path: "/data" }],
9
- // });
10
- //
11
- // CRUD here is metadata-only (create/list/get/delete); the physical mount is
12
- // performed host-side before the guest resumes.
13
1
  import { SolariError } from "./errors.js";
14
2
  import { HttpTransport, newIdempotencyKey } from "./http.js";
15
3
  export class VolumeClient {
@@ -25,7 +13,6 @@ export class VolumeClient {
25
13
  ...(options.fetch ? { fetch: options.fetch } : {}),
26
14
  });
27
15
  }
28
- /** Create a persistent volume (`POST /volumes`). */
29
16
  create(opts = {}) {
30
17
  const body = {
31
18
  ...(opts.name !== undefined ? { name: opts.name } : {}),
@@ -36,18 +23,14 @@ export class VolumeClient {
36
23
  idempotencyKey: newIdempotencyKey(),
37
24
  });
38
25
  }
39
- /** List this org's volumes, newest first (`GET /volumes`). */
40
26
  async list() {
41
27
  const res = await this.http.request("GET", "/volumes");
42
28
  return res.volumes;
43
29
  }
44
- /** Get one volume's metadata (`GET /volumes/:id`). */
45
30
  get(volumeId) {
46
31
  return this.http.request("GET", `/volumes/${encodeURIComponent(volumeId)}`);
47
32
  }
48
- /** Delete a volume's metadata (`DELETE /volumes/:id`; idempotent). */
49
33
  async delete(volumeId) {
50
34
  await this.http.request("DELETE", `/volumes/${encodeURIComponent(volumeId)}`);
51
35
  }
52
36
  }
53
- //# sourceMappingURL=volume-client.js.map
package/dist/ws.d.ts CHANGED
@@ -15,4 +15,3 @@ export interface WsCallbacks {
15
15
  * `headers` are only honored by the Node path (browsers can't set them).
16
16
  */
17
17
  export declare function openWebSocket(url: string, headers: Record<string, string>, cb: WsCallbacks): Promise<WsLike>;
18
- //# sourceMappingURL=ws.d.ts.map
package/dist/ws.js CHANGED
@@ -1,17 +1,8 @@
1
- // A tiny WebSocket abstraction so `desktop.ts` works identically in Node (via
2
- // the `ws` package) and in the browser (native `WebSocket`). We deliberately
3
- // keep the surface minimal: open/close, send text, and three callbacks.
4
1
  import { ConnectionError } from "./errors.js";
5
- /** True when running somewhere with a usable native `WebSocket` (browsers). */
6
2
  function hasNativeWebSocket() {
7
3
  return typeof globalThis !== "undefined" &&
8
4
  typeof globalThis.WebSocket === "function";
9
5
  }
10
- /**
11
- * Open a WebSocket using the best available implementation. In Node this
12
- * dynamically imports `ws`; in the browser it uses the global `WebSocket`.
13
- * `headers` are only honored by the Node path (browsers can't set them).
14
- */
15
6
  export async function openWebSocket(url, headers, cb) {
16
7
  if (hasNativeWebSocket()) {
17
8
  return openNative(url, cb);
@@ -22,12 +13,6 @@ function openNative(url, cb) {
22
13
  const NativeWebSocket = globalThis.WebSocket;
23
14
  const sock = new NativeWebSocket(url);
24
15
  const OPEN = 1;
25
- // The WHATWG `WebSocket` deliberately hides the HTTP upgrade status, so a
26
- // failed handshake surfaces as a bare `error` event (undici fires it just
27
- // before a `close` with code 1006). Capture whatever detail the event carries
28
- // — and remember the last close code — so the surfaced error is diagnosable
29
- // ("WebSocket error: <detail>") instead of an opaque "WebSocket error". The
30
- // Node `ws` path already exposes the real "Unexpected server response: <code>".
31
16
  let lastCloseCode = null;
32
17
  sock.onopen = () => cb.onOpen();
33
18
  sock.onmessage = (ev) => {
@@ -75,4 +60,3 @@ async function openNodeWs(url, headers, cb) {
75
60
  },
76
61
  };
77
62
  }
78
- //# sourceMappingURL=ws.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solarisdk/core",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Shared runtime for the Solari SDK \u2014 transport, session handles, images, templates, and types used by @solarisdk/desktop and @solarisdk/sandbox.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -9,7 +9,8 @@
9
9
  "exports": {
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
- "import": "./dist/index.js"
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
13
14
  }
14
15
  },
15
16
  "files": [
@@ -18,7 +19,7 @@
18
19
  "LICENSE"
19
20
  ],
20
21
  "scripts": {
21
- "build": "tsc",
22
+ "build": "node ../../scripts/build-pkg.mjs",
22
23
  "typecheck": "tsc --noEmit"
23
24
  },
24
25
  "engines": {
@@ -29,7 +30,7 @@
29
30
  "sdk",
30
31
  "core"
31
32
  ],
32
- "license": "Apache-2.0",
33
+ "license": "MIT",
33
34
  "publishConfig": {
34
35
  "access": "public"
35
36
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunked-download.d.ts","sourceRoot":"","sources":["../src/chunked-download.ts"],"names":[],"mappings":"AAGA,wHAAwH;AACxH,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,0EAA0E;AAC1E,eAAO,MAAM,0BAA0B,QAAyB,CAAC;AAGjE;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,EACjF,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,UAAU,CAAC,CAgCrB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunked-download.js","sourceRoot":"","sources":["../src/chunked-download.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../src/desktop.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"desktop.js","sourceRoot":"","sources":["../src/desktop.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,oDAAoD;AACpD,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,8EAA8E;AAC9E,qBAAa,YAAa,SAAQ,WAAW;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;gBAErB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB;CAMrE;AAED,+DAA+D;AAC/D,qBAAa,SAAU,SAAQ,YAAY;gBAC7B,OAAO,SAA+B,EAAE,IAAI,CAAC,EAAE,gBAAgB;CAG5E;AAED;;;GAGG;AACH,qBAAa,SAAU,SAAQ,YAAY;gBAEvC,OAAO,SAA2C,EAClD,IAAI,CAAC,EAAE,gBAAgB,EACvB,MAAM,SAAM;CAIf;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;gBAEnD,OAAO,SAA+B,EACtC,IAAI,CAAC,EAAE,gBAAgB;CAI1B;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,YAAY;gBAE7C,OAAO,SAA8B,EACrC,IAAI,CAAC,EAAE,gBAAgB;CAI1B;AAED;;;;;;;;GAQG;AACH,qBAAa,sBAAuB,SAAQ,YAAY;IACtD,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBAEZ,OAAO,SAA2B,EAAE,IAAI,CAAC,EAAE,gBAAgB;CAIxE;AAED,gDAAgD;AAChD,qBAAa,WAAY,SAAQ,WAAW;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3D;AAED,kEAAkE;AAClE,qBAAa,YAAa,SAAQ,WAAW;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAK9C;AAED,sEAAsE;AACtE,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,OAAO,SAAqC;CAGzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GAAG,SAAS,GACjC,YAAY,CAgCd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../src/handle.ts"],"names":[],"mappings":"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"}