@namzu/sandbox 13.0.0 → 14.0.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 (67) hide show
  1. package/CHANGELOG.md +309 -0
  2. package/README.md +151 -0
  3. package/dist/backends/firecracker/protocol.d.ts +22 -0
  4. package/dist/backends/firecracker/protocol.d.ts.map +1 -1
  5. package/dist/backends/firecracker/protocol.js.map +1 -1
  6. package/dist/backends/firecracker/transport.d.ts +104 -9
  7. package/dist/backends/firecracker/transport.d.ts.map +1 -1
  8. package/dist/backends/firecracker/transport.js +139 -13
  9. package/dist/backends/firecracker/transport.js.map +1 -1
  10. package/dist/backends/kubernetes/egress-policy.d.ts +219 -0
  11. package/dist/backends/kubernetes/egress-policy.d.ts.map +1 -0
  12. package/dist/backends/kubernetes/egress-policy.js +314 -0
  13. package/dist/backends/kubernetes/egress-policy.js.map +1 -0
  14. package/dist/backends/kubernetes/index.d.ts +374 -0
  15. package/dist/backends/kubernetes/index.d.ts.map +1 -0
  16. package/dist/backends/kubernetes/index.js +671 -0
  17. package/dist/backends/kubernetes/index.js.map +1 -0
  18. package/dist/backends/kubernetes/k8s-client.d.ts +125 -0
  19. package/dist/backends/kubernetes/k8s-client.d.ts.map +1 -0
  20. package/dist/backends/kubernetes/k8s-client.js +246 -0
  21. package/dist/backends/kubernetes/k8s-client.js.map +1 -0
  22. package/dist/backends/kubernetes/lease.d.ts +119 -0
  23. package/dist/backends/kubernetes/lease.d.ts.map +1 -0
  24. package/dist/backends/kubernetes/lease.js +151 -0
  25. package/dist/backends/kubernetes/lease.js.map +1 -0
  26. package/dist/backends/kubernetes/objects.d.ts +282 -0
  27. package/dist/backends/kubernetes/objects.d.ts.map +1 -0
  28. package/dist/backends/kubernetes/objects.js +156 -0
  29. package/dist/backends/kubernetes/objects.js.map +1 -0
  30. package/dist/backends/kubernetes/privilege-probe.d.ts +136 -0
  31. package/dist/backends/kubernetes/privilege-probe.d.ts.map +1 -0
  32. package/dist/backends/kubernetes/privilege-probe.js +185 -0
  33. package/dist/backends/kubernetes/privilege-probe.js.map +1 -0
  34. package/dist/backends/kubernetes/sandbox.d.ts +123 -0
  35. package/dist/backends/kubernetes/sandbox.d.ts.map +1 -0
  36. package/dist/backends/kubernetes/sandbox.js +299 -0
  37. package/dist/backends/kubernetes/sandbox.js.map +1 -0
  38. package/dist/backends/kubernetes/transport.d.ts +122 -0
  39. package/dist/backends/kubernetes/transport.d.ts.map +1 -0
  40. package/dist/backends/kubernetes/transport.js +197 -0
  41. package/dist/backends/kubernetes/transport.js.map +1 -0
  42. package/dist/backends/kubernetes/workspace.d.ts +381 -0
  43. package/dist/backends/kubernetes/workspace.d.ts.map +1 -0
  44. package/dist/backends/kubernetes/workspace.js +1064 -0
  45. package/dist/backends/kubernetes/workspace.js.map +1 -0
  46. package/dist/index.d.ts +132 -2
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +102 -34
  49. package/dist/index.js.map +1 -1
  50. package/dist/testing/sandbox-conformance.d.ts +193 -0
  51. package/dist/testing/sandbox-conformance.d.ts.map +1 -0
  52. package/dist/testing/sandbox-conformance.js +465 -0
  53. package/dist/testing/sandbox-conformance.js.map +1 -0
  54. package/package.json +5 -4
  55. package/src/backends/firecracker/protocol.ts +27 -0
  56. package/src/backends/firecracker/transport.ts +199 -28
  57. package/src/backends/kubernetes/egress-policy.ts +437 -0
  58. package/src/backends/kubernetes/index.ts +1012 -0
  59. package/src/backends/kubernetes/k8s-client.ts +352 -0
  60. package/src/backends/kubernetes/lease.ts +198 -0
  61. package/src/backends/kubernetes/objects.ts +363 -0
  62. package/src/backends/kubernetes/privilege-probe.ts +261 -0
  63. package/src/backends/kubernetes/sandbox.ts +395 -0
  64. package/src/backends/kubernetes/transport.ts +286 -0
  65. package/src/backends/kubernetes/workspace.ts +1386 -0
  66. package/src/index.ts +257 -35
  67. package/src/testing/sandbox-conformance.ts +667 -0
@@ -53,7 +53,7 @@
53
53
  * transport resume-survivable by construction.
54
54
  */
55
55
  import type { OpenTerminalOptions, SandboxExecOptions, SandboxExecResult, SandboxTcpConnectOptions, SandboxTcpConnection, TerminalSession } from '@namzu/sdk';
56
- import { type ExecRequest, type ReadFileRequest, type TcpConnectRequest, type TerminalOpenRequest, type WriteFileRequest } from './protocol.js';
56
+ import { type AgentRequestCredential, type ExecRequest, type ReadFileRequest, type TcpConnectRequest, type TerminalOpenRequest, type WriteFileRequest } from './protocol.js';
57
57
  /**
58
58
  * An addressable agent endpoint. The orchestrator hands one of these
59
59
  * back per sandbox (`create()` response → `vsock endpoint`).
@@ -79,6 +79,18 @@ import { type ExecRequest, type ReadFileRequest, type TcpConnectRequest, type Te
79
79
  * (`tls.TLSSocket` is a `net.Socket`). The container-app NEVER sees
80
80
  * a host-local `udsPath`; the cert material is injected by the
81
81
  * Vandal host layer, never returned by the orchestrator.
82
+ * - `tcp` — the guest agent listening directly on a routed pod
83
+ * network (the kubernetes backend). The dialer does a plain
84
+ * `net.connect({ host, port })` — no relay, no routing preamble, no
85
+ * ack: there is nothing between the host and the guest's own listen
86
+ * socket to route through, so the framing loop starts on the very
87
+ * first byte, exactly as the `unix` arm's does. `host` may be a
88
+ * Service FQDN rather than a literal IP; every call dials fresh (see
89
+ * `dial()` below), so DNS is re-resolved on every request and a
90
+ * resumed pod's new address is picked up for free. `token` rides in
91
+ * each request envelope (see `AgentRequestCredential` in
92
+ * `protocol.ts`) because a routed listener authenticates what the
93
+ * vsock/unix control channel never had to.
82
94
  */
83
95
  export type SandboxAgentHandle = {
84
96
  readonly kind: 'unix';
@@ -98,6 +110,11 @@ export type SandboxAgentHandle = {
98
110
  readonly key: string | Buffer;
99
111
  readonly servername?: string;
100
112
  };
113
+ } | {
114
+ readonly kind: 'tcp';
115
+ readonly host: string;
116
+ readonly port: number;
117
+ readonly token?: string;
101
118
  };
102
119
  /**
103
120
  * The mTLS cert material the consumer injects onto a wire `mtls` handle (the
@@ -112,12 +129,17 @@ export interface MtlsClientMaterial {
112
129
  readonly servername?: string;
113
130
  }
114
131
  /**
115
- * The WIRE shape of an agent handle as the orchestrator returns it. Identical
116
- * to {@link SandboxAgentHandle} EXCEPT the `mtls` arm omits the `tls` cert
117
- * block: the orchestrator returns only host/port/sandboxId, and the consumer
118
- * (Vandal host layer) merges the cert material in (see `normalizeHandle`)
119
- * before constructing the transport. The `unix`/`vsock` arms are unchanged
120
- * (they carry no cert material).
132
+ * The WIRE shape of an agent handle as the FIRECRACKER orchestrator
133
+ * returns it. Identical to {@link SandboxAgentHandle} EXCEPT the `mtls`
134
+ * arm omits the `tls` cert block: the orchestrator returns only
135
+ * host/port/sandboxId, and the consumer (Vandal host layer) merges the
136
+ * cert material in (see `normalizeHandle`) before constructing the
137
+ * transport. The `unix`/`vsock` arms are unchanged (they carry no cert
138
+ * material). There is deliberately no `tcp` arm here: that kind belongs
139
+ * to the kubernetes backend, which builds its {@link SandboxAgentHandle}
140
+ * directly (host/port from the claimed Sandbox's status, token from the
141
+ * pod's own identity) and never goes through this orchestrator wire
142
+ * shape or `normalizeHandle`.
121
143
  */
122
144
  export type WireSandboxAgentHandle = {
123
145
  readonly kind: 'unix';
@@ -137,7 +159,7 @@ export type WireSandboxAgentHandle = {
137
159
  * used the URL path (`/execute`, `/read-file`, `/write-file`,
138
160
  * `/healthz`) — over vsock the same selector rides in the framed JSON.
139
161
  */
140
- export type AgentRequest = {
162
+ export type AgentRequest = ({
141
163
  readonly op: 'execute';
142
164
  readonly body: ExecRequest;
143
165
  } | {
@@ -161,7 +183,7 @@ export type AgentRequest = {
161
183
  readonly body: TcpConnectRequest;
162
184
  } | {
163
185
  readonly op: 'healthz';
164
- };
186
+ }) & AgentRequestCredential;
165
187
  export interface VsockTransportOptions {
166
188
  /** Per-attempt connect + handshake timeout. Default 5000ms. */
167
189
  readonly connectTimeoutMs?: number;
@@ -177,6 +199,43 @@ export interface VsockTransportOptions {
177
199
  * against the agent's fresh listen socket. Default 60000ms.
178
200
  */
179
201
  readonly readIdleTimeoutMs?: number;
202
+ /**
203
+ * Fires once per successful dial with how long the connect took, in
204
+ * milliseconds. Never fires with the handle's `token` or any request
205
+ * content — a bare number. Used by callers that build their own
206
+ * `RemoteExecutionAdapter` on top of this transport (the kubernetes
207
+ * backend's `KubernetesAgentTransport`) to attribute wall time; the
208
+ * vsock/mtls/unix arms are free to ignore it.
209
+ */
210
+ readonly onDial?: (durationMs: number) => void;
211
+ }
212
+ /**
213
+ * The guest agent's default pre-auth frame ceiling for a routed (`tcp`)
214
+ * connection — mirrors `agent.cjs`'s `MAX_PREAUTH_FRAME_BYTES`
215
+ * (`NAMZU_AGENT_MAX_PREAUTH_FRAME_BYTES`, default 8 MiB). The gate on
216
+ * that side cannot run until a whole frame is parsed (the credential
217
+ * rides inside the envelope), so it bounds what an UNAUTHENTICATED
218
+ * connection's first frame may announce. This transport dials fresh per
219
+ * call — there is no persistent, already-authenticated connection to
220
+ * reuse — so EVERY `tcp` request is that connection's first frame, and
221
+ * this ceiling is therefore the effective per-request budget, not just
222
+ * a one-time cost paid on first use.
223
+ *
224
+ * Checked here, client-side, BEFORE dialing: an oversized request fails
225
+ * fast with a clear error instead of opening a connection the guest is
226
+ * going to refuse anyway. Chunking a `write-file` body across multiple
227
+ * frames would lift this ceiling; it is a documented follow-up, not
228
+ * implemented by this transport.
229
+ */
230
+ export declare const TCP_PREAUTH_FRAME_LIMIT_BYTES: number;
231
+ /**
232
+ * Thrown when a `tcp`-handle request's framed envelope (op + body +
233
+ * token) would exceed {@link TCP_PREAUTH_FRAME_LIMIT_BYTES}. Named so a
234
+ * caller can distinguish "this body needs chunking" from every other
235
+ * transport failure.
236
+ */
237
+ export declare class AgentPreauthFrameTooLargeError extends Error {
238
+ constructor(message: string);
180
239
  }
181
240
  /** Exact guest wire version accepted by this Firecracker transport. */
182
241
  export declare const FIRECRACKER_AGENT_PROTOCOL_VERSION: 2;
@@ -203,6 +262,7 @@ export declare class VsockAgentTransport {
203
262
  private readonly connectRetryBudgetMs;
204
263
  private readonly connectRetryIntervalMs;
205
264
  private readonly readIdleTimeoutMs;
265
+ private readonly onDial?;
206
266
  private readonly executionController;
207
267
  constructor(handle: SandboxAgentHandle, options?: VsockTransportOptions);
208
268
  /**
@@ -236,6 +296,27 @@ export declare class VsockAgentTransport {
236
296
  * CONNECT-ack path) before resolving — today it does not.
237
297
  */
238
298
  private connectOnceMtls;
299
+ /**
300
+ * Dial a `tcp` handle: a plain `net.connect({ host, port })`. NO
301
+ * routing preamble and NO ack — there is no relay to route through
302
+ * and no handshake line the guest expects, so the socket is handed
303
+ * to the framing loop the instant it connects, exactly like the
304
+ * `unix` arm above (whose body this deliberately does not touch).
305
+ */
306
+ private connectOnceTcp;
307
+ /**
308
+ * Fold the handle's credential into a request envelope. Only the
309
+ * `tcp` arm carries a token — the vsock/unix/mtls control channels
310
+ * are host↔guest only and the agent authenticates nothing there, so
311
+ * a request built for those arms passes through unchanged.
312
+ */
313
+ private withCredential;
314
+ /**
315
+ * Refuse an oversized `tcp` envelope BEFORE dialing. See
316
+ * {@link TCP_PREAUTH_FRAME_LIMIT_BYTES}. A no-op for every other
317
+ * handle kind, which the guest never gates on frame size pre-auth.
318
+ */
319
+ private assertPreauthBudget;
239
320
  /**
240
321
  * Send one framed request and read one framed JSON reply (file-IO +
241
322
  * healthz). Applies the read-idle timeout so a post-resume hung read
@@ -256,6 +337,20 @@ export declare class VsockAgentTransport {
256
337
  */
257
338
  execute(body: ExecRequest, opts?: SandboxExecOptions, signal?: AbortSignal): Promise<SandboxExecResult>;
258
339
  exec(command: string, argv?: string[], opts?: SandboxExecOptions): Promise<SandboxExecResult>;
340
+ /**
341
+ * The raw `/execute` primitive with NO admission/reservation
342
+ * semantics: dial, send one framed request, accumulate the streamed
343
+ * NDJSON reply. Public (unlike the identical-in-spirit
344
+ * {@link reserveExecution}/{@link cancelExecution}, reached through
345
+ * the already-public {@link request}) so a caller running its OWN
346
+ * {@link RemoteExecutionController} — the kubernetes backend's
347
+ * adapter — can reuse this exact dial + framing rather than
348
+ * reimplementing it, while still supplying that controller its own
349
+ * `reserve`/`cancel`/`execute` triple as {@link RemoteExecutionAdapter}
350
+ * requires. Callers that just want a reserve-before-admission `exec`
351
+ * should use {@link execute} or {@link exec} instead.
352
+ */
353
+ executeStreamed(body: ExecRequest, opts?: SandboxExecOptions, signal?: AbortSignal): Promise<SandboxExecResult>;
259
354
  private reserveExecution;
260
355
  private cancelExecution;
261
356
  /** Readiness probe. A healthy guest must also speak the exact host protocol. */
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAKH,OAAO,KAAK,EACX,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,MAAM,YAAY,CAAA;AASnB,OAAO,EACN,KAAK,WAAW,EAEhB,KAAK,eAAe,EAEpB,KAAK,iBAAiB,EAItB,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EAGrB,MAAM,eAAe,CAAA;AAMtB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,kBAAkB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3E;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;QAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;QAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAC5B,CAAA;CACA,CAAA;AAEJ;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3E;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CACzB,CAAA;AAMJ;;;;GAIG;AACH,MAAM,MAAM,YAAY,GACrB;IAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAA;CAAE,GACpC;IACA,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;CAAE,CAAA;AAE7B,MAAM,WAAW,qBAAqB;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,gFAAgF;IAChF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IACtC,sDAAsD;IACtD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;IACxC;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CACnC;AAeD,uEAAuE;AACvE,eAAO,MAAM,kCAAkC,GAAoC,CAAA;AAKnF,iBAAS,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOtC;AAED;;;;GAIG;AACH,cAAM,WAAW;IAChB,OAAO,CAAC,GAAG,CAA0B;IAErC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA6B7B,IAAI,aAAa,IAAI,MAAM,CAE1B;CACD;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAC7C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAEnC;gBAEW,MAAM,EAAE,kBAAkB,EAAE,OAAO,GAAE,qBAA0B;IAgC3E;;;;;OAKG;YACW,IAAI;IAsBlB,OAAO,CAAC,WAAW;IAqEnB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,eAAe;IAmEvB;;;;OAIG;IACG,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAwErE;;;;OAIG;YACW,UAAU;IAqGxB;;;;;OAKG;IACG,OAAO,CACZ,IAAI,EAAE,WAAW,EACjB,IAAI,CAAC,EAAE,kBAAkB,EACzB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,iBAAiB,CAAC;IAuBvB,IAAI,CACT,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,IAAI,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,iBAAiB,CAAC;YAIf,gBAAgB;YAsBhB,eAAe;IAI7B,gFAAgF;IAC1E,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBrD;;;;;OAKG;IACG,YAAY,CACjB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC;IA0BV,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7C;;;;;;;;OAQG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAsJ1E,oEAAoE;IAC9D,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA2IzF;AAkFD,eAAO,MAAM,SAAS;;;CAAyB,CAAA"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAKH,OAAO,KAAK,EACX,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,MAAM,YAAY,CAAA;AASnB,OAAO,EACN,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAEhB,KAAK,eAAe,EAEpB,KAAK,iBAAiB,EAItB,KAAK,mBAAmB,EAExB,KAAK,gBAAgB,EAGrB,MAAM,eAAe,CAAA;AAMtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,MAAM,kBAAkB,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3E;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;QAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;QAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;QAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAC5B,CAAA;CACA,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAElG;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,sBAAsB,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3E;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CACzB,CAAA;AAMJ;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CACxB;IAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,EAAE,EAAE,mBAAmB,CAAA;CAAE,GACpC;IACA,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9C,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAC5D;IAAE,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC9D;IAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;CAAE,CAC5B,GAKA,sBAAsB,CAAA;AAEvB,MAAM,WAAW,qBAAqB;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,gFAAgF;IAChF,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IACtC,sDAAsD;IACtD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;IACxC;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C;AAeD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,6BAA6B,QAAkB,CAAA;AAE5D;;;;;GAKG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;gBAC5C,OAAO,EAAE,MAAM;CAI3B;AAED,uEAAuE;AACvE,eAAO,MAAM,kCAAkC,GAAoC,CAAA;AAKnF,iBAAS,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOtC;AAED;;;;GAIG;AACH,cAAM,WAAW;IAChB,OAAO,CAAC,GAAG,CAA0B;IAErC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IA6B7B,IAAI,aAAa,IAAI,MAAM,CAE1B;CACD;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;IAC7C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAEnC;gBAEW,MAAM,EAAE,kBAAkB,EAAE,OAAO,GAAE,qBAA0B;IAiC3E;;;;;OAKG;YACW,IAAI;IAyBlB,OAAO,CAAC,WAAW;IAsEnB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAO,CAAC,eAAe;IAmEvB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAwCtB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAOtB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;;;OAIG;IACG,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IA2ErE;;;;OAIG;YACW,UAAU;IAwGxB;;;;;OAKG;IACG,OAAO,CACZ,IAAI,EAAE,WAAW,EACjB,IAAI,CAAC,EAAE,kBAAkB,EACzB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,iBAAiB,CAAC;IAuBvB,IAAI,CACT,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,IAAI,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,iBAAiB,CAAC;IAI7B;;;;;;;;;;;;OAYG;IACG,eAAe,CACpB,IAAI,EAAE,WAAW,EACjB,IAAI,CAAC,EAAE,kBAAkB,EACzB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,iBAAiB,CAAC;YAIf,gBAAgB;YAsBhB,eAAe;IAI7B,gFAAgF;IAC1E,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBrD;;;;;OAKG;IACG,YAAY,CACjB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC;IA0BV,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7C;;;;;;;;OAQG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAmJ1E,oEAAoE;IAC9D,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAwIzF;AAqFD,eAAO,MAAM,SAAS;;;CAAyB,CAAA"}
@@ -69,6 +69,37 @@ const DEFAULT_EXECUTION_TIMEOUT_MS = 5 * 60_000;
69
69
  const EXECUTION_TRANSPORT_GRACE_MS = 10_000;
70
70
  const POST_RESPONSE_CLOSE_TIMEOUT_MS = 1_000;
71
71
  const MAX_TIMER_DELAY_MS = 2_147_483_647;
72
+ /**
73
+ * The guest agent's default pre-auth frame ceiling for a routed (`tcp`)
74
+ * connection — mirrors `agent.cjs`'s `MAX_PREAUTH_FRAME_BYTES`
75
+ * (`NAMZU_AGENT_MAX_PREAUTH_FRAME_BYTES`, default 8 MiB). The gate on
76
+ * that side cannot run until a whole frame is parsed (the credential
77
+ * rides inside the envelope), so it bounds what an UNAUTHENTICATED
78
+ * connection's first frame may announce. This transport dials fresh per
79
+ * call — there is no persistent, already-authenticated connection to
80
+ * reuse — so EVERY `tcp` request is that connection's first frame, and
81
+ * this ceiling is therefore the effective per-request budget, not just
82
+ * a one-time cost paid on first use.
83
+ *
84
+ * Checked here, client-side, BEFORE dialing: an oversized request fails
85
+ * fast with a clear error instead of opening a connection the guest is
86
+ * going to refuse anyway. Chunking a `write-file` body across multiple
87
+ * frames would lift this ceiling; it is a documented follow-up, not
88
+ * implemented by this transport.
89
+ */
90
+ export const TCP_PREAUTH_FRAME_LIMIT_BYTES = 8 * 1024 * 1024;
91
+ /**
92
+ * Thrown when a `tcp`-handle request's framed envelope (op + body +
93
+ * token) would exceed {@link TCP_PREAUTH_FRAME_LIMIT_BYTES}. Named so a
94
+ * caller can distinguish "this body needs chunking" from every other
95
+ * transport failure.
96
+ */
97
+ export class AgentPreauthFrameTooLargeError extends Error {
98
+ constructor(message) {
99
+ super(message);
100
+ this.name = 'AgentPreauthFrameTooLargeError';
101
+ }
102
+ }
72
103
  /** Exact guest wire version accepted by this Firecracker transport. */
73
104
  export const FIRECRACKER_AGENT_PROTOCOL_VERSION = REMOTE_EXECUTION_PROTOCOL_VERSION;
74
105
  /** Framing: 8 hex digits of payload byte length, then `\n`, then payload. */
@@ -130,6 +161,7 @@ export class VsockAgentTransport {
130
161
  connectRetryBudgetMs;
131
162
  connectRetryIntervalMs;
132
163
  readIdleTimeoutMs;
164
+ onDial;
133
165
  executionController;
134
166
  constructor(handle, options = {}) {
135
167
  this.handle = handle;
@@ -138,6 +170,7 @@ export class VsockAgentTransport {
138
170
  this.connectRetryIntervalMs =
139
171
  options.connectRetryIntervalMs ?? DEFAULT_CONNECT_RETRY_INTERVAL_MS;
140
172
  this.readIdleTimeoutMs = options.readIdleTimeoutMs ?? DEFAULT_READ_IDLE_TIMEOUT_MS;
173
+ this.onDial = options.onDial;
141
174
  const adapter = {
142
175
  label: 'framed microVM agent',
143
176
  reserve: async (signal) => await this.reserveExecution(signal),
@@ -165,11 +198,14 @@ export class VsockAgentTransport {
165
198
  */
166
199
  async dial(signal) {
167
200
  const deadline = Date.now() + this.connectRetryBudgetMs;
201
+ const dialStartedAt = Date.now();
168
202
  let lastErr;
169
203
  for (;;) {
170
204
  signal?.throwIfAborted();
171
205
  try {
172
- return await this.connectOnce(signal);
206
+ const socket = await this.connectOnce(signal);
207
+ this.onDial?.(Date.now() - dialStartedAt);
208
+ return socket;
173
209
  }
174
210
  catch (err) {
175
211
  if (signal?.aborted)
@@ -186,6 +222,8 @@ export class VsockAgentTransport {
186
222
  const handle = this.handle;
187
223
  if (handle.kind === 'mtls')
188
224
  return this.connectOnceMtls(handle, signal);
225
+ if (handle.kind === 'tcp')
226
+ return this.connectOnceTcp(handle, signal);
189
227
  return new Promise((resolve, reject) => {
190
228
  const path = handle.kind === 'unix' ? handle.path : handle.udsPath;
191
229
  const socket = net.connect({ path });
@@ -327,12 +365,80 @@ export class VsockAgentTransport {
327
365
  });
328
366
  });
329
367
  }
368
+ /**
369
+ * Dial a `tcp` handle: a plain `net.connect({ host, port })`. NO
370
+ * routing preamble and NO ack — there is no relay to route through
371
+ * and no handshake line the guest expects, so the socket is handed
372
+ * to the framing loop the instant it connects, exactly like the
373
+ * `unix` arm above (whose body this deliberately does not touch).
374
+ */
375
+ connectOnceTcp(handle, signal) {
376
+ return new Promise((resolve, reject) => {
377
+ const socket = net.connect({ host: handle.host, port: handle.port });
378
+ let settled = false;
379
+ const fail = (err) => {
380
+ if (settled)
381
+ return;
382
+ settled = true;
383
+ clearTimeout(timer);
384
+ signal?.removeEventListener('abort', abort);
385
+ socket.destroy();
386
+ reject(err);
387
+ };
388
+ const abort = () => fail(signalError(signal));
389
+ const timer = setTimeout(() => fail(new Error(`connect/handshake timed out after ${this.connectTimeoutMs}ms`)), this.connectTimeoutMs);
390
+ timer.unref();
391
+ socket.once('error', fail);
392
+ if (signal?.aborted) {
393
+ abort();
394
+ return;
395
+ }
396
+ signal?.addEventListener('abort', abort, { once: true });
397
+ socket.once('connect', () => {
398
+ if (settled)
399
+ return;
400
+ settled = true;
401
+ clearTimeout(timer);
402
+ signal?.removeEventListener('abort', abort);
403
+ socket.removeListener('error', fail);
404
+ resolve(socket);
405
+ });
406
+ });
407
+ }
408
+ /**
409
+ * Fold the handle's credential into a request envelope. Only the
410
+ * `tcp` arm carries a token — the vsock/unix/mtls control channels
411
+ * are host↔guest only and the agent authenticates nothing there, so
412
+ * a request built for those arms passes through unchanged.
413
+ */
414
+ withCredential(req) {
415
+ if (this.handle.kind === 'tcp' && this.handle.token !== undefined) {
416
+ return { ...req, token: this.handle.token };
417
+ }
418
+ return req;
419
+ }
420
+ /**
421
+ * Refuse an oversized `tcp` envelope BEFORE dialing. See
422
+ * {@link TCP_PREAUTH_FRAME_LIMIT_BYTES}. A no-op for every other
423
+ * handle kind, which the guest never gates on frame size pre-auth.
424
+ */
425
+ assertPreauthBudget(payload) {
426
+ if (this.handle.kind !== 'tcp')
427
+ return;
428
+ const size = Buffer.byteLength(payload, 'utf8');
429
+ if (size <= TCP_PREAUTH_FRAME_LIMIT_BYTES)
430
+ return;
431
+ throw new AgentPreauthFrameTooLargeError(`kubernetes tcp transport: request envelope is ${size} bytes, which exceeds the ${TCP_PREAUTH_FRAME_LIMIT_BYTES}-byte limit the guest agent enforces on an unauthenticated connection's first frame (NAMZU_AGENT_MAX_PREAUTH_FRAME_BYTES, default 8 MiB). Every tcp request dials a fresh connection, so this request WOULD be that connection's first frame. Chunking a large body across multiple frames is not implemented; reduce the payload or raise the deployment's NAMZU_AGENT_MAX_PREAUTH_FRAME_BYTES.`);
432
+ }
330
433
  /**
331
434
  * Send one framed request and read one framed JSON reply (file-IO +
332
435
  * healthz). Applies the read-idle timeout so a post-resume hung read
333
436
  * is torn down rather than wedging the caller.
334
437
  */
335
438
  async request(req, signal) {
439
+ const envelope = this.withCredential(req);
440
+ const payload = JSON.stringify(envelope);
441
+ this.assertPreauthBudget(payload);
336
442
  const socket = await this.dial(signal);
337
443
  return await new Promise((resolve, reject) => {
338
444
  const reader = new FrameReader();
@@ -403,7 +509,7 @@ export class VsockAgentTransport {
403
509
  }
404
510
  signal?.addEventListener('abort', abort, { once: true });
405
511
  idle.bump();
406
- socket.write(frame(JSON.stringify(req)));
512
+ socket.write(frame(payload));
407
513
  });
408
514
  }
409
515
  /**
@@ -412,6 +518,9 @@ export class VsockAgentTransport {
412
518
  * The agent terminates the stream with a zero-length frame.
413
519
  */
414
520
  async executeRaw(body, opts, signal) {
521
+ const envelope = this.withCredential({ op: 'execute', body });
522
+ const payload = JSON.stringify(envelope);
523
+ this.assertPreauthBudget(payload);
415
524
  const socket = await this.dial(signal);
416
525
  const start = Date.now();
417
526
  return await new Promise((resolve, reject) => {
@@ -500,7 +609,7 @@ export class VsockAgentTransport {
500
609
  return;
501
610
  }
502
611
  signal?.addEventListener('abort', abort, { once: true });
503
- socket.write(frame(JSON.stringify({ op: 'execute', body })));
612
+ socket.write(frame(payload));
504
613
  });
505
614
  }
506
615
  /**
@@ -527,6 +636,22 @@ export class VsockAgentTransport {
527
636
  async exec(command, argv, opts) {
528
637
  return await this.executionController.exec(command, argv, opts);
529
638
  }
639
+ /**
640
+ * The raw `/execute` primitive with NO admission/reservation
641
+ * semantics: dial, send one framed request, accumulate the streamed
642
+ * NDJSON reply. Public (unlike the identical-in-spirit
643
+ * {@link reserveExecution}/{@link cancelExecution}, reached through
644
+ * the already-public {@link request}) so a caller running its OWN
645
+ * {@link RemoteExecutionController} — the kubernetes backend's
646
+ * adapter — can reuse this exact dial + framing rather than
647
+ * reimplementing it, while still supplying that controller its own
648
+ * `reserve`/`cancel`/`execute` triple as {@link RemoteExecutionAdapter}
649
+ * requires. Callers that just want a reserve-before-admission `exec`
650
+ * should use {@link execute} or {@link exec} instead.
651
+ */
652
+ async executeStreamed(body, opts, signal) {
653
+ return await this.executeRaw(body, opts, signal);
654
+ }
530
655
  async reserveExecution(signal) {
531
656
  const response = await this.request({ op: 'reserve-execution' }, signal);
532
657
  if (response.ok === false &&
@@ -624,7 +749,6 @@ export class VsockAgentTransport {
624
749
  * the session and its authenticated WebSocket attachment.
625
750
  */
626
751
  async openTerminal(options) {
627
- const socket = await this.dial();
628
752
  const request = {
629
753
  ...(options.command !== undefined ? { command: options.command } : {}),
630
754
  ...(options.args !== undefined ? { args: options.args } : {}),
@@ -633,6 +757,9 @@ export class VsockAgentTransport {
633
757
  cols: options.size.cols,
634
758
  rows: options.size.rows,
635
759
  };
760
+ const openPayload = JSON.stringify(this.withCredential({ op: 'terminal', body: request }));
761
+ this.assertPreauthBudget(openPayload);
762
+ const socket = await this.dial();
636
763
  return await new Promise((resolve, reject) => {
637
764
  const KILL_GRACE_MS = 5_000;
638
765
  const reader = new FrameReader();
@@ -759,10 +886,7 @@ export class VsockAgentTransport {
759
886
  socket.once('error', (err) => finish(err));
760
887
  socket.once('close', () => finish(new Error('vsock transport: terminal socket closed before exit')));
761
888
  idle.bump();
762
- socket.write(frame(JSON.stringify({
763
- op: 'terminal',
764
- body: request,
765
- })));
889
+ socket.write(frame(openPayload));
766
890
  });
767
891
  }
768
892
  /** Open one TCP stream to a service listening on guest loopback. */
@@ -774,8 +898,10 @@ export class VsockAgentTransport {
774
898
  if (host !== '127.0.0.1' && host !== '::1') {
775
899
  throw new Error('firecracker TCP connections are restricted to guest loopback');
776
900
  }
777
- const socket = await this.dial();
778
901
  const request = { host, port: options.port };
902
+ const openPayload = JSON.stringify(this.withCredential({ op: 'tcp-connect', body: request }));
903
+ this.assertPreauthBudget(openPayload);
904
+ const socket = await this.dial();
779
905
  return await new Promise((resolve, reject) => {
780
906
  const reader = new FrameReader();
781
907
  const listeners = new Set();
@@ -896,10 +1022,7 @@ export class VsockAgentTransport {
896
1022
  socket.once('error', (error) => finish(error));
897
1023
  socket.once('close', () => finish(ready ? null : new Error('vsock TCP socket closed before readiness')));
898
1024
  idle.bump();
899
- socket.write(frame(JSON.stringify({
900
- op: 'tcp-connect',
901
- body: request,
902
- })));
1025
+ socket.write(frame(openPayload));
903
1026
  });
904
1027
  }
905
1028
  }
@@ -979,6 +1102,9 @@ function describeHandle(handle) {
979
1102
  return `vsock:${handle.udsPath}#${handle.port}`;
980
1103
  case 'mtls':
981
1104
  return `mtls:${handle.host}:${handle.port}/${handle.sandboxId}`;
1105
+ case 'tcp':
1106
+ // Never the token: this string lands in thrown error messages.
1107
+ return `tcp:${handle.host}:${handle.port}`;
982
1108
  }
983
1109
  }
984
1110
  // Internal framing helpers exported for the transport unit tests so the
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"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"}