@namzu/sandbox 26.0.0 → 28.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.
- package/CHANGELOG.md +62 -7
- package/README.md +20 -7
- package/dist/backends/firecracker/protocol.d.ts +46 -0
- package/dist/backends/firecracker/protocol.d.ts.map +1 -1
- package/dist/backends/firecracker/protocol.js +31 -0
- package/dist/backends/firecracker/protocol.js.map +1 -1
- package/dist/backends/firecracker/transport.d.ts +15 -1
- package/dist/backends/firecracker/transport.d.ts.map +1 -1
- package/dist/backends/firecracker/transport.js +16 -0
- package/dist/backends/firecracker/transport.js.map +1 -1
- package/dist/backends/kubernetes/allocation.d.ts +115 -0
- package/dist/backends/kubernetes/allocation.d.ts.map +1 -0
- package/dist/backends/kubernetes/allocation.js +130 -0
- package/dist/backends/kubernetes/allocation.js.map +1 -0
- package/dist/backends/kubernetes/egress-policy.d.ts +111 -35
- package/dist/backends/kubernetes/egress-policy.d.ts.map +1 -1
- package/dist/backends/kubernetes/egress-policy.js +81 -41
- package/dist/backends/kubernetes/egress-policy.js.map +1 -1
- package/dist/backends/kubernetes/identity.d.ts +129 -0
- package/dist/backends/kubernetes/identity.d.ts.map +1 -1
- package/dist/backends/kubernetes/identity.js +150 -0
- package/dist/backends/kubernetes/identity.js.map +1 -1
- package/dist/backends/kubernetes/index.d.ts +23 -1
- package/dist/backends/kubernetes/index.d.ts.map +1 -1
- package/dist/backends/kubernetes/index.js +22 -3
- package/dist/backends/kubernetes/index.js.map +1 -1
- package/dist/backends/kubernetes/objects.d.ts +76 -0
- package/dist/backends/kubernetes/objects.d.ts.map +1 -1
- package/dist/backends/kubernetes/objects.js +61 -0
- package/dist/backends/kubernetes/objects.js.map +1 -1
- package/dist/backends/kubernetes/per-sandbox-fence.d.ts +194 -0
- package/dist/backends/kubernetes/per-sandbox-fence.d.ts.map +1 -0
- package/dist/backends/kubernetes/per-sandbox-fence.js +522 -0
- package/dist/backends/kubernetes/per-sandbox-fence.js.map +1 -0
- package/dist/backends/kubernetes/per-sandbox-policy.d.ts +45 -3
- package/dist/backends/kubernetes/per-sandbox-policy.d.ts.map +1 -1
- package/dist/backends/kubernetes/per-sandbox-policy.js +98 -8
- package/dist/backends/kubernetes/per-sandbox-policy.js.map +1 -1
- package/dist/backends/kubernetes/sandbox.d.ts +4 -9
- package/dist/backends/kubernetes/sandbox.d.ts.map +1 -1
- package/dist/backends/kubernetes/sandbox.js +4 -9
- package/dist/backends/kubernetes/sandbox.js.map +1 -1
- package/dist/backends/kubernetes/transport.d.ts +108 -1
- package/dist/backends/kubernetes/transport.d.ts.map +1 -1
- package/dist/backends/kubernetes/transport.js +150 -6
- package/dist/backends/kubernetes/transport.js.map +1 -1
- package/dist/backends/kubernetes/workspace-allocate.d.ts +206 -0
- package/dist/backends/kubernetes/workspace-allocate.d.ts.map +1 -0
- package/dist/backends/kubernetes/workspace-allocate.js +332 -0
- package/dist/backends/kubernetes/workspace-allocate.js.map +1 -0
- package/dist/backends/kubernetes/workspace-observe.d.ts +187 -0
- package/dist/backends/kubernetes/workspace-observe.d.ts.map +1 -0
- package/dist/backends/kubernetes/workspace-observe.js +343 -0
- package/dist/backends/kubernetes/workspace-observe.js.map +1 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.d.ts +94 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.d.ts.map +1 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.js +119 -0
- package/dist/backends/kubernetes/workspace-per-sandbox.js.map +1 -0
- package/dist/backends/kubernetes/workspace.d.ts +139 -5
- package/dist/backends/kubernetes/workspace.d.ts.map +1 -1
- package/dist/backends/kubernetes/workspace.js +434 -36
- package/dist/backends/kubernetes/workspace.js.map +1 -1
- package/dist/index.d.ts +83 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +100 -6
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/backends/firecracker/protocol.ts +47 -0
- package/src/backends/firecracker/transport.ts +31 -0
- package/src/backends/kubernetes/allocation.ts +199 -0
- package/src/backends/kubernetes/egress-policy.ts +165 -42
- package/src/backends/kubernetes/identity.ts +210 -0
- package/src/backends/kubernetes/index.ts +61 -2
- package/src/backends/kubernetes/objects.ts +98 -0
- package/src/backends/kubernetes/per-sandbox-fence.ts +800 -0
- package/src/backends/kubernetes/per-sandbox-policy.ts +152 -17
- package/src/backends/kubernetes/sandbox.ts +4 -9
- package/src/backends/kubernetes/transport.ts +203 -4
- package/src/backends/kubernetes/workspace-allocate.ts +607 -0
- package/src/backends/kubernetes/workspace-observe.ts +590 -0
- package/src/backends/kubernetes/workspace-per-sandbox.ts +179 -0
- package/src/backends/kubernetes/workspace.ts +655 -34
- package/src/index.ts +193 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,61 @@
|
|
|
1
1
|
# @namzu/sandbox
|
|
2
2
|
|
|
3
|
+
## 28.0.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [7608640]
|
|
8
|
+
- Updated dependencies [7608640]
|
|
9
|
+
- Updated dependencies [7608640]
|
|
10
|
+
- @namzu/sdk@53.0.0
|
|
11
|
+
|
|
12
|
+
## 27.0.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- 90fbb95: A host can now create a Kubernetes workspace without adopting or waking anything, and prove later that what it finds is what it created. `allocateKubernetesWorkspace` sends one create and never retries it: a same-name object is a `KubernetesWorkspaceAllocationConflictError` and is left untouched, the pod is never resumed, and the result carries the new Sandbox's uid as an acknowledgement, not as readiness. The allocation id, a scope fingerprint and an execution-profile fingerprint are stored in the create request as the annotations `sandbox.namzu.ai/allocation-id`, `sandbox.namzu.ai/allocation-scope` and `sandbox.namzu.ai/execution-profile`. `resolveKubernetesExecutionProfile` computes the profile fingerprint (pod template with this backend's overlays, disks, translated egress policy, ingress settings) from one read, so the host can persist it before the create. A create that gets no usable reply returns `{ outcome: 'unknown' }`; `recoverKubernetesWorkspaceAllocation` settles it by reading (`created`, `absent` or `different`).
|
|
17
|
+
|
|
18
|
+
`inspectKubernetesWorkspace`, `openKubernetesWorkspace` and `reconcileKubernetesWorkspace` accept `expectedAllocation` and refuse a Sandbox whose annotations or copied pod template differ with `KubernetesWorkspaceAllocationMismatchError`. A call that does not pass it behaves as before; `inspectKubernetesWorkspace` results gain an `allocation` field. Nothing to change for existing callers.
|
|
19
|
+
|
|
20
|
+
- 90fbb95: `config.egress.perSandbox` now verifies the per-sandbox path as strictly as the `no-network` baseline, and refuses in cases it used to admit. Most hosts need no change; a host whose fence is wrong now finds out at the first `setNetworkPolicy` call instead of holding policy-write access behind a fence that enforces nothing.
|
|
21
|
+
|
|
22
|
+
What now refuses, with the new `KubernetesAdmissionFenceInertError` (it carries `field`, `expected` and `actual`) and nothing written: a `ValidatingAdmissionPolicyBinding` whose `validationActions` lacks `Deny` (an `Audit` or `Warn` binding logs and admits), that names another policy, that excludes `CREATE`, `UPDATE` or `DELETE` of `ciliumnetworkpolicies`, that carries an `objectSelector`, or whose `namespaceSelector` does not cover `config.namespace` (a selector on labels other than `kubernetes.io/metadata.name` cannot be proved and is refused); and a policy whose `failurePolicy` is not `Fail`, that does not match those verbs, or that has no validations. If you applied a fence that did one of those, fix the object. If your binding selects namespaces by a label other than `kubernetes.io/metadata.name`, select by that one instead.
|
|
23
|
+
|
|
24
|
+
After every successful `setNetworkPolicy` write the union of all policies selecting the pod is re-checked against the baseline plus the policy just written. If any other policy allows more, the backend deletes its own object and throws `KubernetesEgressPolicyUnionError`; a failed read-back now deletes the object too, and if that deletion fails `KubernetesPerSandboxPolicyNotRemovedError` says the policy may still be in force. `egress.verify: 'named-object-only'` skips the re-check, as it skips the create-path union.
|
|
25
|
+
|
|
26
|
+
New, optional, off by default: `perSandbox.hostIdentity` (the user the policy's `matchConditions` must name), and `perSandbox.permittedHostsParam: { name, namespace }`, which pins the hostnames and ports a host may grant in an operator-owned ConfigMap, enforced at admission by the new companion manifest `k8s/manifests/validatingadmissionpolicy-cilium-permitted-hosts.yaml` and checked locally first (`KubernetesPermittedHostsError`, `KubernetesPermittedHostsParamError`). Left unset, nothing is read, no manifest changes, and the shipped fence is untouched. New acceptance probe `k8s/scripts/per-sandbox-egress-check.mjs`, which needs a Cilium cluster that enforces FQDN policy.
|
|
27
|
+
|
|
28
|
+
- 90fbb95: `createKubernetesWorkspace` and `allocateKubernetesWorkspace` now accept `egress.perSandbox` and give the workspace handle `setNetworkPolicy`, with the same write, read-back and union check a task handle has. The workspace's `Sandbox` pod template carries the per-sandbox selector label (its value is the Sandbox name) and the `Sandbox` owns the policy, so deleting the workspace with `destroy({ deleteDisk: true })` lets the cluster remove it; the default `destroy()` only suspends and keeps it. The admission fence is proved before the workspace is created or opened and again on every resume, and a resume deletes any per-sandbox policy that selects the workspace but whose owner is not the current Sandbox; a policy the Sandbox owns is kept. A workspace created before the option was set has no label, and adopting it with `perSandbox` configured throws `KubernetesWorkspaceMismatchError` (`field: 'perSandboxLabel'`) until you reopen it with `refreshPodTemplate: true`.
|
|
29
|
+
|
|
30
|
+
`resolveKubernetesExecutionProfile` and `allocateKubernetesWorkspace` read the fence first, and with `perSandbox` configured the fingerprint changes and, over a core `no-network` baseline, `profile.variant` is `'core/no-network+per-sandbox'` (exported as `KUBERNETES_PER_SANDBOX_PROFILE_VARIANT`). A configuration without `perSandbox` keeps its fingerprint and its request log exactly. `KubernetesExecutionProfileOptions` gains an optional `workspaceId`.
|
|
31
|
+
|
|
32
|
+
Behaviour change to know about: a configuration that set `egress.perSandbox` on a backend used for workspaces used to throw `KubernetesWorkspacePerSandboxEgressConfigError` before any request; it now creates workspaces, and needs the fence and the `rbac-per-sandbox-egress.yaml` RBAC to exist. `KubernetesWorkspacePerSandboxEgressConfigError` stays exported and is marked `@deprecated`; nothing throws it. `KubernetesWorkspaceMismatchError.field` gains the member `'perSandboxLabel'`. Enforcement needs a Cilium cluster and is not tested here.
|
|
33
|
+
|
|
34
|
+
- 90fbb95: `workspace.pinGuest({ sandboxUid, podUid, guestBootId })` returns a view of a Kubernetes workspace (`exec`, `readFile`, `writeFile`, `listFiles`, `openTerminal`, `openTcpConnection`, `quiesce`) that talks only to the guest you authenticated. It never follows a replaced pod: if the workspace's identity changed it rejects with the new `KubernetesGuestPinRefusedError` before dialing, and otherwise each request goes in a new `pinned` guest-agent op that the agent checks against its own boot id before dispatching anything, so a replaced or restarted guest runs nothing and the error carries the id of the agent that answered (`freshGuestBootId`). A fenced guest you pinned rejects with `KubernetesAgentRetiringError`, which now carries `guestBootId`. An identity with a missing or empty `sandboxUid`, `podUid` or `guestBootId` throws `KubernetesPinIncompleteError`. It needs the new `pinned-guest` guest feature: against an older workspace image every call on the view rejects with reason `guest-unsupported` and sends nothing, so rebuild the image from this release to use it. Calls on the workspace itself are unchanged. `PINNED_GUEST_FEATURE` is exported alongside the new errors.
|
|
35
|
+
- 90fbb95: `workspace.quiesce({ onlyIfIdle: true })` asks whether a Kubernetes workspace is idle without stopping anything. It never signals or marks a process: it resolves with a report (`rounds: 0`, `stopped: []`) only when the guest's whole PID namespace holds nothing but init and the agent, and otherwise rejects with the new `KubernetesQuiesceBusyError`, which lists what it saw so you can retry later. A guest image that cannot tell reliably (an unreadable `/proc` entry, or an agent that cannot see its whole namespace) rejects with `KubernetesQuiesceUnconfirmedError` instead of reporting idle. It needs the new `quiesce-idle` guest feature: against an older workspace image the call rejects with `KubernetesQuiesceUnsupportedError` and sends nothing, so rebuild the image from this release to use it. Existing `quiesce()` and `suspend({ quiesce })` calls are unchanged. `QUIESCE_IDLE_FEATURE` is exported alongside the new error.
|
|
36
|
+
- 90fbb95: A Kubernetes workspace's writes are now pinned to the Sandbox they were meant for. A handle's `suspend()`, `resume()` and `destroy({ deleteDisk: true })` carry the Sandbox uid the handle bound: a different Sandbox under the same workspace id is refused with `KubernetesWorkspaceReplacedError` and nothing is written, where before the write went to whatever stood under the name. This needs no change to a call; the only visible difference is that a handle that knows its uid now sends a JSON patch (with an extra read) in place of the merge patch it used to send without an epoch. `suspendKubernetesWorkspace` and `deleteKubernetesWorkspace` accept `expectedIdentity: { sandboxUid }` for a host holding no handle.
|
|
37
|
+
|
|
38
|
+
New, read-only and GET-only: `inspectKubernetesWorkspace` (uids, mode, epoch, readiness), `openKubernetesWorkspace` (authenticate a retained identity, optionally `waitForReady` under one deadline; moves of `resourceVersion` or `Ready` are not a conflict, a real Sandbox or claim replacement is `KubernetesWorkspaceIdentityMismatchError`, running out of time is `KubernetesWorkspaceReadyTimeoutError`) and `reconcileKubernetesWorkspace` (`live`, `suspended`, `absent` or `replaced`). They need `get` on `persistentvolumeclaims` and `pods` as well as `sandboxes`.
|
|
39
|
+
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- Updated dependencies [5258c05]
|
|
43
|
+
- Updated dependencies [5258c05]
|
|
44
|
+
- Updated dependencies [5258c05]
|
|
45
|
+
- Updated dependencies [5258c05]
|
|
46
|
+
- Updated dependencies [5258c05]
|
|
47
|
+
- Updated dependencies [5258c05]
|
|
48
|
+
- Updated dependencies [5258c05]
|
|
49
|
+
- Updated dependencies [5258c05]
|
|
50
|
+
- Updated dependencies [5258c05]
|
|
51
|
+
- Updated dependencies [5258c05]
|
|
52
|
+
- Updated dependencies [5258c05]
|
|
53
|
+
- Updated dependencies [5258c05]
|
|
54
|
+
- Updated dependencies [5258c05]
|
|
55
|
+
- Updated dependencies [5258c05]
|
|
56
|
+
- Updated dependencies [5258c05]
|
|
57
|
+
- @namzu/sdk@52.0.0
|
|
58
|
+
|
|
3
59
|
## 26.0.0
|
|
4
60
|
|
|
5
61
|
### Patch Changes
|
|
@@ -977,7 +1033,7 @@ terminator`, reporting no `peerCloseMs` at all — the close in that case is the
|
|
|
977
1033
|
host set one, fails with `ENOSPC` or is OOM-killed, where writing it to disk used
|
|
978
1034
|
to succeed. Any workload that spills more than its memory budget into `/tmp`,
|
|
979
1035
|
`/var/tmp` or `/workspace` is in that group.
|
|
980
|
-
Everything the
|
|
1036
|
+
Everything the base image does keeps working: `/tmp` stays executable
|
|
981
1037
|
(docker's own `--tmpfs` default is `noexec`, which would have turned
|
|
982
1038
|
`gcc -o /tmp/a.out … && /tmp/a.out` into `Permission denied`), and `HOME` stays
|
|
983
1039
|
writable, which is what LibreOffice, matplotlib and npm need.
|
|
@@ -2675,7 +2731,7 @@ progress in <a local notes directory>/...` — a runtime error
|
|
|
2675
2731
|
returns 404, to explain the doctor's protocol/runtime split. The split is now
|
|
2676
2732
|
explained in the sentence itself.
|
|
2677
2733
|
- `@namzu/sdk` source comments cited design documents by path. They cite the
|
|
2678
|
-
session by name instead, which is
|
|
2734
|
+
session by name instead, which is all such a citation was ever worth.
|
|
2679
2735
|
|
|
2680
2736
|
No API, type, or behaviour change. The `@namzu/sandbox` message text is the
|
|
2681
2737
|
only runtime string affected, and nothing asserts on it.
|
|
@@ -3175,7 +3231,7 @@ mkdir '/Users'` crash that hit sibling-container deployments.
|
|
|
3175
3231
|
branched on the env, only logged it; size grew with the skill
|
|
3176
3232
|
list). Only `NAMZU_SANDBOX_WORKSPACE` is forwarded today.
|
|
3177
3233
|
|
|
3178
|
-
The
|
|
3234
|
+
The image pre-creates **only the parent directories**
|
|
3179
3235
|
`/mnt`, `/mnt/user-data`, `/mnt/skills` — root-owned, mode 0555.
|
|
3180
3236
|
Leaf paths (`outputs/`, `uploads/`, `tool_results/`, `transcripts/`,
|
|
3181
3237
|
`<skill-id>/`) are intentionally NOT pre-created. When a bind is
|
|
@@ -3280,7 +3336,7 @@ test:smoke`) runs an opt-in docker integration test exercising the
|
|
|
3280
3336
|
four-tier taxonomy that mirrors how production agent platforms
|
|
3281
3337
|
actually deploy code-execution sandboxes:
|
|
3282
3338
|
|
|
3283
|
-
- `process` —
|
|
3339
|
+
- `process` — host-process isolation
|
|
3284
3340
|
(bubblewrap on Linux, Seatbelt on macOS, via Anthropic's
|
|
3285
3341
|
`@anthropic-ai/sandbox-runtime`). For agents that run on the
|
|
3286
3342
|
developer's own machine.
|
|
@@ -3307,10 +3363,9 @@ test:smoke`) runs an opt-in docker integration test exercising the
|
|
|
3307
3363
|
"Sandboxing and Workload Isolation" post and the original
|
|
3308
3364
|
Firecracker NSDI '20 paper are the canonical refs).
|
|
3309
3365
|
- Trusted-tenant → gVisor (GKE Sandbox, Modal, OpenAI Code
|
|
3310
|
-
Interpreter
|
|
3311
|
-
the reference).
|
|
3366
|
+
Interpreter).
|
|
3312
3367
|
- Single-user developer machine → bubblewrap / Seatbelt
|
|
3313
|
-
(
|
|
3368
|
+
(`anthropic-experimental/sandbox-runtime`).
|
|
3314
3369
|
- Single-tenant or co-trusted → plain Docker + seccomp default
|
|
3315
3370
|
profile.
|
|
3316
3371
|
|
package/README.md
CHANGED
|
@@ -810,10 +810,10 @@ security boundary the host relied on.
|
|
|
810
810
|
The kubernetes backend serves that contract when — and only when —
|
|
811
811
|
`egress.perSandbox` is configured: the method is PRESENT on a task handle
|
|
812
812
|
then and absent otherwise, which is the same omit-rather-than-ignore rule read
|
|
813
|
-
from the other side. A `KubernetesWorkspace` handle
|
|
814
|
-
`createKubernetesWorkspace`
|
|
815
|
-
|
|
816
|
-
|
|
813
|
+
from the other side. A `KubernetesWorkspace` handle carries it too when
|
|
814
|
+
`createKubernetesWorkspace` is given the option: the `Sandbox` owns the
|
|
815
|
+
policies and the pod template carries the selector label (see
|
|
816
|
+
`docs/sdk/kubernetes-sandbox.md`). Configured, each
|
|
817
817
|
`setNetworkPolicy` call writes one
|
|
818
818
|
`CiliumNetworkPolicy` for that sandbox alone, named after the claim's uid,
|
|
819
819
|
selecting one per-sandbox pod label, owned by the claim so the cluster
|
|
@@ -827,9 +827,22 @@ them is refused by design rather than by accident: an applied
|
|
|
827
827
|
`ValidatingAdmissionPolicy` and its binding, which the backend proves before
|
|
828
828
|
its first write and which bound what the host may write, and a separate RBAC
|
|
829
829
|
file granting the policy-write verbs the default Role deliberately withholds.
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
`
|
|
830
|
+
The per-sandbox path is verified as strictly as the `no-network` baseline, side
|
|
831
|
+
by side: the fence is read back by content (the binding attaches this policy
|
|
832
|
+
and includes `Deny`, the policy fails closed and covers every verb, the
|
|
833
|
+
binding's namespace selection covers the sandboxes' namespace, and
|
|
834
|
+
`perSandbox.hostIdentity`, when set, is the identity the policy matches), so an
|
|
835
|
+
`Audit`-only or mis-attached fence is refused with
|
|
836
|
+
`KubernetesAdmissionFenceInertError` naming the field, with nothing written;
|
|
837
|
+
`perSandbox.permittedHostsParam` pins the hosts and ports a host may grant in an
|
|
838
|
+
operator-owned `ConfigMap`, enforced at admission by a companion policy and
|
|
839
|
+
checked locally first; and after every write the union of the policies
|
|
840
|
+
selecting the pod is re-checked against baseline plus the written policy, and
|
|
841
|
+
the written policy is deleted if anything else allows more. Whether any of it is
|
|
842
|
+
ENFORCED is a property of the cluster's CNI and is not measured anywhere in this
|
|
843
|
+
repository: `k8s/scripts/per-sandbox-egress-check.mjs` is the probe for a Cilium
|
|
844
|
+
cluster that enforces FQDN policy, and it reports SNI as unenforced unless asked
|
|
845
|
+
to test it. See `docs/sdk/kubernetes-sandbox.md`.
|
|
833
846
|
|
|
834
847
|
## Documentation
|
|
835
848
|
|
|
@@ -410,6 +410,47 @@ export interface KillSessionRequest {
|
|
|
410
410
|
* would take its capture over a disk somebody is still writing to.
|
|
411
411
|
*/
|
|
412
412
|
export declare const QUIESCE_FEATURE = "quiesce";
|
|
413
|
+
/**
|
|
414
|
+
* The `healthz` feature string an agent advertises when its `quiesce` op
|
|
415
|
+
* accepts `{ idleOnly: true }`: look at the guest, signal and mark nothing,
|
|
416
|
+
* and refuse with `quiesce_busy` unless the whole PID namespace is idle.
|
|
417
|
+
*
|
|
418
|
+
* It is its own string, not implied by {@link QUIESCE_FEATURE}, because an
|
|
419
|
+
* agent that predates it IGNORES unknown body fields: sent `idleOnly` it
|
|
420
|
+
* would run the stopping quiesce and kill the work the caller asked not to
|
|
421
|
+
* touch. A host therefore sends the field only to a guest that advertised
|
|
422
|
+
* this, and an older guest (which advertises `quiesce` alone) keeps working
|
|
423
|
+
* for the stopping mode unchanged.
|
|
424
|
+
*/
|
|
425
|
+
export declare const QUIESCE_IDLE_FEATURE = "quiesce-idle";
|
|
426
|
+
/**
|
|
427
|
+
* The `healthz` feature string an agent advertises when it serves the
|
|
428
|
+
* `pinned` op: one ordinary request wrapped with the guest boot id the
|
|
429
|
+
* caller expects, dispatched only if the agent's own id equals it.
|
|
430
|
+
*
|
|
431
|
+
* A distinct op rather than an extra field on every request, because an
|
|
432
|
+
* agent that predates it IGNORES unknown fields and would serve a pinned
|
|
433
|
+
* request on whatever guest it happens to be, which is precisely what a
|
|
434
|
+
* pin exists to prevent. An older agent answers `unknown_op: pinned`
|
|
435
|
+
* instead, and a host that checked this feature first never sends it.
|
|
436
|
+
*/
|
|
437
|
+
export declare const PINNED_GUEST_FEATURE = "pinned-guest";
|
|
438
|
+
/** What the `pinned` op carries: the expected guest and the request to run on it. */
|
|
439
|
+
export interface PinnedRequest {
|
|
440
|
+
/** The agent process the caller authenticated. Refused when the agent's own id differs. */
|
|
441
|
+
readonly expectedGuestBootId: string;
|
|
442
|
+
/** One ordinary request. Never `pinned` or `healthz`. */
|
|
443
|
+
readonly request: {
|
|
444
|
+
readonly op: string;
|
|
445
|
+
readonly body?: unknown;
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
/**
|
|
449
|
+
* The refusal an agent answers a pinned request with when its own boot id
|
|
450
|
+
* is not the one expected. The `error` text is `guest_mismatch:<its id>` and
|
|
451
|
+
* the same id is on the frame's `guestBootId`; nothing was dispatched.
|
|
452
|
+
*/
|
|
453
|
+
export declare const GUEST_MISMATCH_REFUSAL = "guest_mismatch";
|
|
413
454
|
/** Stop everything. `graceMs` bounds ONE round's SIGTERM window. */
|
|
414
455
|
export interface QuiesceRequest {
|
|
415
456
|
/**
|
|
@@ -419,6 +460,11 @@ export interface QuiesceRequest {
|
|
|
419
460
|
* 1000ms. It is NOT the pod's `terminationGracePeriodSeconds`.
|
|
420
461
|
*/
|
|
421
462
|
readonly graceMs?: number;
|
|
463
|
+
/**
|
|
464
|
+
* Only look: signal nothing, mark nothing, wait for nothing. Requires
|
|
465
|
+
* {@link QUIESCE_IDLE_FEATURE}, and cannot be combined with `graceMs`.
|
|
466
|
+
*/
|
|
467
|
+
readonly idleOnly?: boolean;
|
|
422
468
|
}
|
|
423
469
|
/**
|
|
424
470
|
* How wide the guest's scan was allowed to be — reported, so a narrowed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/protocol.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,6 +85,37 @@ export const GUEST_BOOT_ID_FEATURE = 'guest-boot-id';
|
|
|
85
85
|
* would take its capture over a disk somebody is still writing to.
|
|
86
86
|
*/
|
|
87
87
|
export const QUIESCE_FEATURE = 'quiesce';
|
|
88
|
+
/**
|
|
89
|
+
* The `healthz` feature string an agent advertises when its `quiesce` op
|
|
90
|
+
* accepts `{ idleOnly: true }`: look at the guest, signal and mark nothing,
|
|
91
|
+
* and refuse with `quiesce_busy` unless the whole PID namespace is idle.
|
|
92
|
+
*
|
|
93
|
+
* It is its own string, not implied by {@link QUIESCE_FEATURE}, because an
|
|
94
|
+
* agent that predates it IGNORES unknown body fields: sent `idleOnly` it
|
|
95
|
+
* would run the stopping quiesce and kill the work the caller asked not to
|
|
96
|
+
* touch. A host therefore sends the field only to a guest that advertised
|
|
97
|
+
* this, and an older guest (which advertises `quiesce` alone) keeps working
|
|
98
|
+
* for the stopping mode unchanged.
|
|
99
|
+
*/
|
|
100
|
+
export const QUIESCE_IDLE_FEATURE = 'quiesce-idle';
|
|
101
|
+
/**
|
|
102
|
+
* The `healthz` feature string an agent advertises when it serves the
|
|
103
|
+
* `pinned` op: one ordinary request wrapped with the guest boot id the
|
|
104
|
+
* caller expects, dispatched only if the agent's own id equals it.
|
|
105
|
+
*
|
|
106
|
+
* A distinct op rather than an extra field on every request, because an
|
|
107
|
+
* agent that predates it IGNORES unknown fields and would serve a pinned
|
|
108
|
+
* request on whatever guest it happens to be, which is precisely what a
|
|
109
|
+
* pin exists to prevent. An older agent answers `unknown_op: pinned`
|
|
110
|
+
* instead, and a host that checked this feature first never sends it.
|
|
111
|
+
*/
|
|
112
|
+
export const PINNED_GUEST_FEATURE = 'pinned-guest';
|
|
113
|
+
/**
|
|
114
|
+
* The refusal an agent answers a pinned request with when its own boot id
|
|
115
|
+
* is not the one expected. The `error` text is `guest_mismatch:<its id>` and
|
|
116
|
+
* the same id is on the frame's `guestBootId`; nothing was dispatched.
|
|
117
|
+
*/
|
|
118
|
+
export const GUEST_MISMATCH_REFUSAL = 'guest_mismatch';
|
|
88
119
|
// ---------------------------------------------------------------------------
|
|
89
120
|
// Flush — put the workspace's dirty pages on the device, on purpose
|
|
90
121
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/backends/firecracker/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAyJ3F;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,kBAAkB,CAAA;AAE1D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,kBAAkB,CAAA;AA6D1D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,kBAAkB,CAAA;AAyF1D,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAE9E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAA;AAE1C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAA;AAmEpD,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/backends/firecracker/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
* transport resume-survivable by construction.
|
|
54
54
|
*/
|
|
55
55
|
import type { OpenTerminalOptions, SandboxExecOptions, SandboxExecResult, SandboxReadFileOptions, SandboxTcpConnectOptions, SandboxTcpConnection, TerminalSession } from '@namzu/sdk';
|
|
56
|
-
import { type AgentRequestCredential, type AttachSessionRequest, type ExecRequest, type FlushRequest, type GuestReplyIdentity, type KillSessionRequest, type QuiesceRequest, type ReadFileRequest, type ReadFileStreamRequest, type StartDetachedRequest, type TcpConnectRequest, type TerminalOpenRequest, type TerminalReadyEvent, type WriteFileRequest } from './protocol.js';
|
|
56
|
+
import { type AgentRequestCredential, type AttachSessionRequest, type ExecRequest, type FlushRequest, type GuestReplyIdentity, type KillSessionRequest, type PinnedRequest, type QuiesceRequest, type ReadFileRequest, type ReadFileStreamRequest, type StartDetachedRequest, type TcpConnectRequest, type TerminalOpenRequest, type TerminalReadyEvent, 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`).
|
|
@@ -212,6 +212,9 @@ export type AgentRequest = ({
|
|
|
212
212
|
readonly body: FlushRequest;
|
|
213
213
|
} | {
|
|
214
214
|
readonly op: 'healthz';
|
|
215
|
+
} | {
|
|
216
|
+
readonly op: 'pinned';
|
|
217
|
+
readonly body: PinnedRequest;
|
|
215
218
|
}) & AgentRequestCredential;
|
|
216
219
|
/**
|
|
217
220
|
* One `exec()` call's wall-time breakdown on the Firecracker tier.
|
|
@@ -403,6 +406,16 @@ export interface VsockTransportOptions {
|
|
|
403
406
|
* bind token — cannot change when the container is restarted in place.
|
|
404
407
|
*/
|
|
405
408
|
readonly onGuestReply?: (reply: GuestReplyIdentity) => void;
|
|
409
|
+
/**
|
|
410
|
+
* Pin every request this transport sends (every op but `healthz`) to the
|
|
411
|
+
* guest agent process with this boot id: each is wrapped in the `pinned`
|
|
412
|
+
* op, which the agent refuses before dispatch when its own id differs.
|
|
413
|
+
*
|
|
414
|
+
* The caller must have checked {@link PINNED_GUEST_FEATURE} first: an
|
|
415
|
+
* older agent answers `unknown_op: pinned` and runs nothing, which is the
|
|
416
|
+
* safe failure, but it is not a message anyone should have to decode.
|
|
417
|
+
*/
|
|
418
|
+
readonly pinnedGuestBootId?: string;
|
|
406
419
|
/**
|
|
407
420
|
* The largest `writeFile` body this transport will accept, in raw
|
|
408
421
|
* bytes. Default {@link DEFAULT_MAX_WRITE_FILE_BYTES} (1 GiB).
|
|
@@ -647,6 +660,7 @@ export declare class VsockAgentTransport {
|
|
|
647
660
|
private guestFeatureList?;
|
|
648
661
|
private readonly permanentDialFailure?;
|
|
649
662
|
private readonly onExecTiming?;
|
|
663
|
+
private readonly pinnedGuestBootId?;
|
|
650
664
|
constructor(handle: SandboxAgentHandle, options?: VsockTransportOptions);
|
|
651
665
|
/**
|
|
652
666
|
* The reserve-before-admission triple this transport hands the shared
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -391,6 +391,7 @@ export class VsockAgentTransport {
|
|
|
391
391
|
guestFeatureList;
|
|
392
392
|
permanentDialFailure;
|
|
393
393
|
onExecTiming;
|
|
394
|
+
pinnedGuestBootId;
|
|
394
395
|
constructor(handle, options = {}) {
|
|
395
396
|
this.handle = handle;
|
|
396
397
|
this.connectTimeoutMs = options.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS;
|
|
@@ -410,6 +411,9 @@ export class VsockAgentTransport {
|
|
|
410
411
|
}
|
|
411
412
|
this.permanentDialFailure = options.permanentDialFailure;
|
|
412
413
|
this.onExecTiming = options.onExecTiming;
|
|
414
|
+
if (options.pinnedGuestBootId !== undefined) {
|
|
415
|
+
this.pinnedGuestBootId = options.pinnedGuestBootId;
|
|
416
|
+
}
|
|
413
417
|
}
|
|
414
418
|
/**
|
|
415
419
|
* The reserve-before-admission triple this transport hands the shared
|
|
@@ -723,6 +727,18 @@ export class VsockAgentTransport {
|
|
|
723
727
|
* a request built for those arms passes through unchanged.
|
|
724
728
|
*/
|
|
725
729
|
withCredential(req) {
|
|
730
|
+
const pinned = this.pinnedGuestBootId;
|
|
731
|
+
if (pinned !== undefined && req.op !== 'healthz' && req.op !== 'pinned') {
|
|
732
|
+
const { token: _token, op, ...rest } = req;
|
|
733
|
+
const inner = { op, ...('body' in rest ? { body: rest.body } : {}) };
|
|
734
|
+
const wrapped = {
|
|
735
|
+
op: 'pinned',
|
|
736
|
+
body: { expectedGuestBootId: pinned, request: inner },
|
|
737
|
+
};
|
|
738
|
+
return this.handle.kind === 'tcp' && this.handle.token !== undefined
|
|
739
|
+
? { ...wrapped, token: this.handle.token }
|
|
740
|
+
: wrapped;
|
|
741
|
+
}
|
|
726
742
|
if (this.handle.kind === 'tcp' && this.handle.token !== undefined) {
|
|
727
743
|
return { ...req, token: this.handle.token };
|
|
728
744
|
}
|