@namzu/sandbox 13.0.0 → 15.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 (104) hide show
  1. package/CHANGELOG.md +1147 -0
  2. package/README.md +447 -0
  3. package/dist/backends/aci-standby-pool/index.d.ts.map +1 -1
  4. package/dist/backends/aci-standby-pool/index.js +13 -1
  5. package/dist/backends/aci-standby-pool/index.js.map +1 -1
  6. package/dist/backends/docker/index.d.ts.map +1 -1
  7. package/dist/backends/docker/index.js +19 -1
  8. package/dist/backends/docker/index.js.map +1 -1
  9. package/dist/backends/firecracker/index.d.ts.map +1 -1
  10. package/dist/backends/firecracker/index.js +12 -2
  11. package/dist/backends/firecracker/index.js.map +1 -1
  12. package/dist/backends/firecracker/protocol.d.ts +481 -8
  13. package/dist/backends/firecracker/protocol.d.ts.map +1 -1
  14. package/dist/backends/firecracker/protocol.js +136 -0
  15. package/dist/backends/firecracker/protocol.js.map +1 -1
  16. package/dist/backends/firecracker/transport.d.ts +642 -14
  17. package/dist/backends/firecracker/transport.d.ts.map +1 -1
  18. package/dist/backends/firecracker/transport.js +1307 -34
  19. package/dist/backends/firecracker/transport.js.map +1 -1
  20. package/dist/backends/kubernetes/egress-policy.d.ts +1296 -0
  21. package/dist/backends/kubernetes/egress-policy.d.ts.map +1 -0
  22. package/dist/backends/kubernetes/egress-policy.js +2458 -0
  23. package/dist/backends/kubernetes/egress-policy.js.map +1 -0
  24. package/dist/backends/kubernetes/identity.d.ts +193 -0
  25. package/dist/backends/kubernetes/identity.d.ts.map +1 -0
  26. package/dist/backends/kubernetes/identity.js +147 -0
  27. package/dist/backends/kubernetes/identity.js.map +1 -0
  28. package/dist/backends/kubernetes/index.d.ts +1019 -0
  29. package/dist/backends/kubernetes/index.d.ts.map +1 -0
  30. package/dist/backends/kubernetes/index.js +1756 -0
  31. package/dist/backends/kubernetes/index.js.map +1 -0
  32. package/dist/backends/kubernetes/ingress-policy.d.ts +375 -0
  33. package/dist/backends/kubernetes/ingress-policy.d.ts.map +1 -0
  34. package/dist/backends/kubernetes/ingress-policy.js +1050 -0
  35. package/dist/backends/kubernetes/ingress-policy.js.map +1 -0
  36. package/dist/backends/kubernetes/k8s-client.d.ts +334 -0
  37. package/dist/backends/kubernetes/k8s-client.d.ts.map +1 -0
  38. package/dist/backends/kubernetes/k8s-client.js +553 -0
  39. package/dist/backends/kubernetes/k8s-client.js.map +1 -0
  40. package/dist/backends/kubernetes/lease.d.ts +145 -0
  41. package/dist/backends/kubernetes/lease.d.ts.map +1 -0
  42. package/dist/backends/kubernetes/lease.js +201 -0
  43. package/dist/backends/kubernetes/lease.js.map +1 -0
  44. package/dist/backends/kubernetes/objects.d.ts +702 -0
  45. package/dist/backends/kubernetes/objects.d.ts.map +1 -0
  46. package/dist/backends/kubernetes/objects.js +518 -0
  47. package/dist/backends/kubernetes/objects.js.map +1 -0
  48. package/dist/backends/kubernetes/per-sandbox-policy.d.ts +219 -0
  49. package/dist/backends/kubernetes/per-sandbox-policy.d.ts.map +1 -0
  50. package/dist/backends/kubernetes/per-sandbox-policy.js +407 -0
  51. package/dist/backends/kubernetes/per-sandbox-policy.js.map +1 -0
  52. package/dist/backends/kubernetes/privilege-probe.d.ts +136 -0
  53. package/dist/backends/kubernetes/privilege-probe.d.ts.map +1 -0
  54. package/dist/backends/kubernetes/privilege-probe.js +185 -0
  55. package/dist/backends/kubernetes/privilege-probe.js.map +1 -0
  56. package/dist/backends/kubernetes/rbac.d.ts +153 -0
  57. package/dist/backends/kubernetes/rbac.d.ts.map +1 -0
  58. package/dist/backends/kubernetes/rbac.js +177 -0
  59. package/dist/backends/kubernetes/rbac.js.map +1 -0
  60. package/dist/backends/kubernetes/sandbox.d.ts +190 -0
  61. package/dist/backends/kubernetes/sandbox.d.ts.map +1 -0
  62. package/dist/backends/kubernetes/sandbox.js +433 -0
  63. package/dist/backends/kubernetes/sandbox.js.map +1 -0
  64. package/dist/backends/kubernetes/transport.d.ts +1048 -0
  65. package/dist/backends/kubernetes/transport.d.ts.map +1 -0
  66. package/dist/backends/kubernetes/transport.js +2093 -0
  67. package/dist/backends/kubernetes/transport.js.map +1 -0
  68. package/dist/backends/kubernetes/workspace.d.ts +1512 -0
  69. package/dist/backends/kubernetes/workspace.d.ts.map +1 -0
  70. package/dist/backends/kubernetes/workspace.js +3703 -0
  71. package/dist/backends/kubernetes/workspace.js.map +1 -0
  72. package/dist/backends/remote-execution-controller.d.ts +14 -0
  73. package/dist/backends/remote-execution-controller.d.ts.map +1 -1
  74. package/dist/backends/remote-execution-controller.js.map +1 -1
  75. package/dist/index.d.ts +350 -2
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +344 -34
  78. package/dist/index.js.map +1 -1
  79. package/dist/testing/sandbox-conformance.d.ts +227 -0
  80. package/dist/testing/sandbox-conformance.d.ts.map +1 -0
  81. package/dist/testing/sandbox-conformance.js +896 -0
  82. package/dist/testing/sandbox-conformance.js.map +1 -0
  83. package/package.json +5 -4
  84. package/src/backends/aci-standby-pool/index.ts +16 -1
  85. package/src/backends/docker/index.ts +22 -1
  86. package/src/backends/firecracker/index.ts +14 -2
  87. package/src/backends/firecracker/protocol.ts +541 -6
  88. package/src/backends/firecracker/transport.ts +1687 -64
  89. package/src/backends/kubernetes/egress-policy.ts +3448 -0
  90. package/src/backends/kubernetes/identity.ts +261 -0
  91. package/src/backends/kubernetes/index.ts +2670 -0
  92. package/src/backends/kubernetes/ingress-policy.ts +1344 -0
  93. package/src/backends/kubernetes/k8s-client.ts +742 -0
  94. package/src/backends/kubernetes/lease.ts +254 -0
  95. package/src/backends/kubernetes/objects.ts +983 -0
  96. package/src/backends/kubernetes/per-sandbox-policy.ts +542 -0
  97. package/src/backends/kubernetes/privilege-probe.ts +261 -0
  98. package/src/backends/kubernetes/rbac.ts +192 -0
  99. package/src/backends/kubernetes/sandbox.ts +593 -0
  100. package/src/backends/kubernetes/transport.ts +2895 -0
  101. package/src/backends/kubernetes/workspace.ts +5640 -0
  102. package/src/backends/remote-execution-controller.ts +14 -0
  103. package/src/index.ts +838 -35
  104. package/src/testing/sandbox-conformance.ts +1202 -0
package/dist/index.d.ts CHANGED
@@ -34,10 +34,60 @@
34
34
  * scheduler, not a scheduler.
35
35
  */
36
36
  import type { ContainerSandboxLayout, Sandbox, SandboxProvider } from '@namzu/sdk';
37
+ import type { KubernetesEgressConfig } from './backends/kubernetes/egress-policy.js';
38
+ import { type KubernetesAgentAddressMode, type KubernetesClusterAccess, type KubernetesReadTaskCapacityOptions, type KubernetesReleaseTaskSandboxesOptions, type KubernetesTaskCapacity } from './backends/kubernetes/index.js';
39
+ import type { KubernetesIngressConfig } from './backends/kubernetes/ingress-policy.js';
40
+ import { type KubernetesWorkspace, type KubernetesWorkspaceOptions, type KubernetesWorkspaceSummary, type KubernetesWorkspaceSuspendOptions, type KubernetesWorkspaceTransitionOptions } from './backends/kubernetes/workspace.js';
37
41
  export type { ContainerSandboxLayout, ContainerSandboxLayoutMount, ContainerSandboxMountSource, ContainerSandboxSkillMount, ResolvedContainerSandboxLayout, } from '@namzu/sdk';
38
42
  export { SANDBOX_DEFAULT_OUTPUTS_PATH, SANDBOX_DEFAULT_SKILLS_PARENT, SANDBOX_DEFAULT_TOOL_RESULTS_PATH, SANDBOX_DEFAULT_TRANSCRIPTS_PATH, SANDBOX_DEFAULT_UPLOADS_PATH, } from '@namzu/sdk';
39
43
  export type { FirecrackerBackendInternalConfig, OrchestratorTokenProvider, } from './backends/firecracker/index.js';
40
- export { FIRECRACKER_AGENT_PROTOCOL_VERSION, type SandboxAgentHandle, type VsockTransportOptions, VsockAgentTransport, } from './backends/firecracker/transport.js';
44
+ export { AgentDialFailedError, AgentPreauthFrameTooLargeError, AgentReadFileStreamUnsupportedError, AgentWriteFileTooLargeError, DEFAULT_MAX_WRITE_FILE_BYTES, FIRECRACKER_AGENT_PROTOCOL_VERSION, GUEST_FRAME_LIMIT_BYTES, type SandboxAgentHandle, TCP_PREAUTH_FRAME_LIMIT_BYTES, type VsockTransportOptions, VsockAgentTransport, } from './backends/firecracker/transport.js';
45
+ export { WRITE_FILE_PARTS_FEATURE, type WriteFilePart, } from './backends/firecracker/protocol.js';
46
+ export { MIN_STREAM_HEARTBEAT_MS, STREAM_HEARTBEAT_FEATURE, STREAM_HEARTBEAT_MAX_ECHO_FACTOR, STREAM_HEARTBEAT_MISS_LIMIT, type StreamHeartbeat, } from './backends/firecracker/protocol.js';
47
+ export { READ_FILE_STREAM_FEATURE, type ReadFileStreamEvent, type ReadFileStreamRequest, } from './backends/firecracker/protocol.js';
48
+ export type { KubernetesAgentAddressMode, KubernetesClusterAccess, } from './backends/kubernetes/index.js';
49
+ export type { EgressProfileLabel, KubernetesCiliumDnsNarrowing, KubernetesCiliumEgressNarrowing, KubernetesEgressConfig, KubernetesEgressEngine, KubernetesEgressPolicy, KubernetesEgressVerification, KubernetesOnlyEgressPolicy, KubernetesPerSandboxEgressConfig, } from './backends/kubernetes/egress-policy.js';
50
+ export { KubernetesPerSandboxEgressConfigError } from './backends/kubernetes/egress-policy.js';
51
+ export { KubernetesWorkspacePerSandboxEgressConfigError } from './backends/kubernetes/egress-policy.js';
52
+ export { DEFAULT_PER_SANDBOX_EGRESS_LABEL_KEY } from './backends/kubernetes/egress-policy.js';
53
+ export { KubernetesAdmissionFenceMissingError, KubernetesAdmissionFenceUnreadableError, KubernetesNetworkPolicyHostError, KubernetesOwnerUidMissingError, PER_SANDBOX_POLICY_NAME_PREFIX, } from './backends/kubernetes/per-sandbox-policy.js';
54
+ export { DEFAULT_EGRESS_PROFILE_LABEL_KEY } from './backends/kubernetes/egress-policy.js';
55
+ export type { EgressPolicyRefusal, EgressPolicyVerdict, ExaminedEgressPolicy, } from './backends/kubernetes/egress-policy.js';
56
+ export { KubernetesEgressNarrowingUnsupportedError, KubernetesEgressPolicyConfigError, KubernetesEgressPolicyUnionError, } from './backends/kubernetes/egress-policy.js';
57
+ export { KubernetesEgressProfileConfigError, KubernetesPodLabelNotObservedError, KubernetesPodLabelsRejectedError, } from './backends/kubernetes/egress-policy.js';
58
+ export type { ExaminedIngressPolicy, IngressPolicyRefusal, IngressPolicyVerdict, KubernetesIngressConfig, KubernetesIngressEngine,
59
+ /** @deprecated Renamed to `UnreadPolicySource`; both checks report it. */
60
+ UnreadIngressPolicySource, UnreadPolicySource, } from './backends/kubernetes/ingress-policy.js';
61
+ export { KubernetesIngressPolicyError } from './backends/kubernetes/ingress-policy.js';
62
+ export { KubernetesPrivilegeProbeError, type PrivilegeProbeFailure, type ProcStatusPrivileges, } from './backends/kubernetes/privilege-probe.js';
63
+ export { KubernetesSandboxDestroyedError, KubernetesSandboxGoneError, } from './backends/kubernetes/sandbox.js';
64
+ export { KubernetesAgentAddressUnresolvableError, KubernetesAgentRetiringError, KubernetesAgentUnauthorizedError, } from './backends/kubernetes/transport.js';
65
+ export type { KubernetesAttachExecutionOptions, KubernetesAttachRefusal, KubernetesDetachedExecOptions, } from './backends/kubernetes/transport.js';
66
+ export { KubernetesExecutionAttachUnsupportedError, KubernetesExecutionDetachedError, KubernetesExecutionNotAttachableError, } from './backends/kubernetes/transport.js';
67
+ export type { KubernetesAttachTerminalOptions, KubernetesOpenTerminalOptions, KubernetesReadSessionOptions, KubernetesSessionOutput, KubernetesSessionRefusal, KubernetesSessionSummary, KubernetesSessionTerminal, KubernetesStartDetachedOptions, KubernetesWorkspaceTerminal, } from './backends/kubernetes/transport.js';
68
+ export { KubernetesSessionRefusedError, KubernetesSessionsUnsupportedError, } from './backends/kubernetes/transport.js';
69
+ export { AgentSessionDetachedError } from './backends/firecracker/transport.js';
70
+ export { SESSIONS_FEATURE, type SessionDetachReason, type SessionKind, type SessionState, } from './backends/firecracker/protocol.js';
71
+ export type { KubernetesQuiesceOptions, KubernetesWorkspaceQuiesceRequest, } from './backends/kubernetes/workspace.js';
72
+ export type { KubernetesQuiesceReport } from './backends/kubernetes/transport.js';
73
+ export { KubernetesQuiesceUnconfirmedError, KubernetesQuiesceUnsupportedError, } from './backends/kubernetes/transport.js';
74
+ export { QUIESCE_FEATURE, type QuiesceScope, type QuiescedProcess, } from './backends/firecracker/protocol.js';
75
+ export type { KubernetesFlushOptions, KubernetesWorkspaceFlushRequest, } from './backends/kubernetes/workspace.js';
76
+ export type { KubernetesFlushReport } from './backends/kubernetes/transport.js';
77
+ export { KubernetesFlushUnconfirmedError, KubernetesFlushUnreachableError, KubernetesFlushUnsupportedError, } from './backends/kubernetes/transport.js';
78
+ export { FLUSH_FEATURE } from './backends/firecracker/protocol.js';
79
+ export { DEFAULT_API_REQUEST_TIMEOUT_MS, KubernetesApiError, type KubernetesApiFailureTransport, KubernetesApiTimeoutError, type KubernetesHttpMethod, KubernetesPatchNotAppliedError, MIN_API_REQUEST_TIMEOUT_MS, } from './backends/kubernetes/k8s-client.js';
80
+ export { KubernetesAlreadyGoneError, KubernetesConflictError, KubernetesCredentialError, } from './backends/kubernetes/k8s-client.js';
81
+ export { KubernetesAcquireError, type KubernetesAcquireFailureReason, ReadinessPollTimeout, TERMINAL_CLAIM_REASONS, } from './backends/kubernetes/index.js';
82
+ export { KubernetesEgressPolicyMismatchError, KubernetesEgressPolicyNotAppliedError, KubernetesUnenforceableEgressPolicyError, } from './backends/kubernetes/egress-policy.js';
83
+ /** Default `KubernetesBackendConfig.streamHeartbeatMs` — see there. */
84
+ export { DEFAULT_STREAM_HEARTBEAT_MS } from './backends/kubernetes/index.js';
85
+ export type { KubernetesReadTaskCapacityOptions, KubernetesReleaseTaskSandboxesOptions, KubernetesTaskCapacity, } from './backends/kubernetes/index.js';
86
+ export { KUBERNETES_CLAIMANT_RBAC_RULES, type KubernetesRbacRule, type KubernetesRbacVerb, } from './backends/kubernetes/rbac.js';
87
+ export type { KubernetesKillSessionOptions, KubernetesWorkspace, KubernetesWorkspaceAgentState, KubernetesWorkspaceCancellationNotice, KubernetesWorkspaceDestroyOptions, KubernetesWorkspaceOptions, KubernetesWorkspaceOrigin, KubernetesWorkspaceStartFailurePolicy, KubernetesWorkspaceSummary, KubernetesWorkspaceSuspendOptions, KubernetesWorkspaceSuspensionNotice, KubernetesWorkspaceTransitionOptions, } from './backends/kubernetes/workspace.js';
88
+ export type { KubernetesGuestEvidence, KubernetesGuestRestart, KubernetesGuestRestartReason, KubernetesWorkspaceIdentity, } from './backends/kubernetes/identity.js';
89
+ export { KubernetesWorkspaceGuestGoneError, KubernetesWorkspaceReplacedError, } from './backends/kubernetes/identity.js';
90
+ export { KubernetesWorkspaceDiskError, KubernetesWorkspaceMismatchError, KubernetesWorkspacePreconditionError, KubernetesWorkspaceSuspendTimeoutError, KubernetesWorkspaceSuspendedError, } from './backends/kubernetes/workspace.js';
41
91
  /**
42
92
  * Top-level sandbox tier, and the trust boundary it buys:
43
93
  *
@@ -65,7 +115,7 @@ export type SandboxTier = 'container' | 'microvm';
65
115
  * tier has its own configuration shape — picking a tier picks the
66
116
  * shape automatically via TS narrowing.
67
117
  */
68
- export type SandboxBackendConfig = ContainerBackendConfig | ACIStandbyPoolBackendConfig | MicroVMBackendConfig;
118
+ export type SandboxBackendConfig = ContainerBackendConfig | ACIStandbyPoolBackendConfig | MicroVMBackendConfig | KubernetesBackendConfig;
69
119
  /**
70
120
  * Azure Container Instances Standby Pool backend. Container tier,
71
121
  * managed-microvm-ish: every claim is a fresh ACI container group
@@ -316,6 +366,199 @@ export interface AgentSnapshotRef {
316
366
  readonly agentId: string;
317
367
  readonly version: string;
318
368
  }
369
+ /**
370
+ * `microvm` tier, against a Kubernetes cluster running the agent-sandbox
371
+ * controller (kubernetes-sigs/agent-sandbox) with a VM-isolating
372
+ * RuntimeClass such as Kata.
373
+ *
374
+ * `microvm` because the tier names the strength of the boundary rather than
375
+ * the orchestrator behind it: a pod scheduled onto a Kata RuntimeClass runs
376
+ * in a hardware-virtualized guest, and the same field on the same tier is how
377
+ * a host says "give me a VM, I do not care who starts it".
378
+ *
379
+ * Sandboxes are claimed out of a `SandboxWarmPool` when {@link warmPoolName}
380
+ * names one, which is what makes the acquire sub-second; without it every
381
+ * create is a `Sandbox` built from {@link sandboxTemplateName}'s podTemplate
382
+ * and pays a full pod start. This package speaks the API server with bare
383
+ * `fetch` and carries no Kubernetes client dependency: credentials arrive
384
+ * through {@link access}, and kubeconfig parsing (context merging,
385
+ * exec credential plugins) stays in the host that owns it.
386
+ */
387
+ export interface KubernetesBackendConfig {
388
+ readonly tier: 'microvm';
389
+ readonly service: 'kubernetes';
390
+ /** Namespace the claims, sandboxes and their pods live in. */
391
+ readonly namespace: string;
392
+ /**
393
+ * How to reach the API server. `{ inCluster: true }` reads the projected
394
+ * ServiceAccount volume and the kubelet's `KUBERNETES_SERVICE_*` env, which
395
+ * is the production path; otherwise the host supplies the server URL, an
396
+ * optional cluster CA and a `getToken()` callback — the same boundary this
397
+ * package already draws for ACI's `getArmToken` and Firecracker's
398
+ * `getToken`.
399
+ */
400
+ readonly access: KubernetesClusterAccess;
401
+ /**
402
+ * `SandboxTemplate` whose `podTemplate` a POOL-LESS create copies into the
403
+ * `Sandbox` it posts. Required because `Sandbox.spec` has no `templateRef`
404
+ * — only a `SandboxWarmPool` references a template — so the pod spec has to
405
+ * be carried across by the client. The warm path does not read it; the
406
+ * pool's own `sandboxTemplateRef` decides there.
407
+ */
408
+ readonly sandboxTemplateName: string;
409
+ /**
410
+ * `SandboxWarmPool` to claim from. Absent → every create posts a `Sandbox`
411
+ * directly, because `SandboxClaim.spec.warmPoolRef` is a required field and
412
+ * a pool-less claim does not exist in the API.
413
+ */
414
+ readonly warmPoolName?: string;
415
+ /** TCP port the in-pod guest agent listens on. Default 1024. */
416
+ readonly agentPort?: number;
417
+ /**
418
+ * Which of a sandbox's two addresses the transport dials.
419
+ *
420
+ * `'service'` (default) is the Sandbox's `status.serviceFQDN`, which
421
+ * outlives the pod and is re-resolved on every dial — and which ONLY the
422
+ * cluster's own DNS answers. A host running outside the cluster fails
423
+ * every call at name resolution, readiness included, so it reads as a
424
+ * sandbox that never came up.
425
+ *
426
+ * `'pod-ip'` dials the bound pod's IP, read from the same `GET` that
427
+ * reads its bind token. For a host outside the cluster with a route to
428
+ * the pod network. It needs that route and a `NetworkPolicy` admitting
429
+ * the host's address range on {@link agentPort}; the IP dies with its
430
+ * pod, which the backend covers by re-reading it on every resume and once
431
+ * after a connect failure. Nothing else changes: same bind token, same
432
+ * privilege probe, same egress verification.
433
+ */
434
+ readonly agentAddress?: KubernetesAgentAddressMode;
435
+ /** Delay between readiness polls. Default 50ms. */
436
+ readonly readyPollIntervalMs?: number;
437
+ /** Total deadline from create to an addressed, Ready sandbox. Default 60000ms. */
438
+ readonly readyTimeoutMs?: number;
439
+ /**
440
+ * Wall-clock lifetime written into every object this backend creates, so a
441
+ * host that dies mid-run costs the cluster one expiry rather than a leaked
442
+ * sandbox. Default 3600.
443
+ */
444
+ readonly claimTtlSeconds?: number;
445
+ /**
446
+ * Every lease-renewal failure that is not "the object is already gone".
447
+ *
448
+ * The handle renews its own `shutdownTime` every half-TTL for as long as
449
+ * it is alive, so a run that outlives `claimTtlSeconds` keeps its pod.
450
+ * A failed renewal is retried on a short capped backoff — starting at one
451
+ * second, not the next half-TTL tick — so a single API blip near a
452
+ * scheduled renewal gets several more chances before anything expires;
453
+ * this callback is where the diagnostic goes, because `@namzu/sandbox`
454
+ * owns no logger and reads none from module scope. Setting it changes
455
+ * nothing about behaviour.
456
+ */
457
+ readonly onLeaseRenewalError?: (error: unknown) => void;
458
+ /**
459
+ * RuntimeClass for a POOL-LESS create. Refused together with
460
+ * {@link warmPoolName}: a pooled sandbox is already running under the
461
+ * RuntimeClass its `SandboxTemplate` named, and a claim cannot change it —
462
+ * so accepting it there would quietly drop the choice of VM boundary.
463
+ */
464
+ readonly runtimeClassName?: string;
465
+ /**
466
+ * Egress policy this backend expects an operator to have applied as a
467
+ * `NetworkPolicy` (or, under `engine: 'cilium'`, a `CiliumNetworkPolicy`)
468
+ * scoped to every Sandbox this backend produces. Unset means this backend
469
+ * neither computes nor checks one — the cluster's default posture (the
470
+ * `SandboxTemplate`'s own managed `NetworkPolicy`) is all that applies.
471
+ *
472
+ * This is a CONFIG-level, whole-backend policy, not a per-`create()` one:
473
+ * `SandboxBackendOptions.egress` is still refused by name (see
474
+ * `backends/kubernetes/index.ts`'s `assertEnforceable`), because the
475
+ * enforcement point is one object attached to the template and cannot be
476
+ * rewritten per running sandbox. `static` and `resolver` — hostname
477
+ * allowlists — throw a named error at construction unless `engine` is
478
+ * `'cilium'`: core `NetworkPolicy` has no FQDN concept at all.
479
+ *
480
+ * `policy` also takes two kinds that exist only here, because only a
481
+ * `NetworkPolicy` can express them: `{ kind: 'no-network' }` (nothing
482
+ * leaves the pod, the cluster resolver included — which `'deny-all'` never
483
+ * meant, since it allows DNS and a cluster resolver forwards outside
484
+ * names) and `{ kind: 'public-internet', exceptCidrs? }` (the internet,
485
+ * minus the private ranges, carrier-grade NAT, link-local and one cloud
486
+ * platform endpoint). `'deny-all'` and `'allow-all'` emit exactly the
487
+ * manifests they always have.
488
+ *
489
+ * **Setting this now checks the UNION.** Since every policy selecting a
490
+ * pod is unioned by the API server, the check reads the named object AND
491
+ * enumerates the namespace's policies, refusing when any of them lets out
492
+ * more than `policy` does. `verify: 'named-object-only'` restores the
493
+ * single-object check exactly. See
494
+ * `docs/sdk/kubernetes-sandbox.md`'s egress section.
495
+ */
496
+ readonly egress?: KubernetesEgressConfig;
497
+ /**
498
+ * Whether this backend proves, before creating a sandbox, that an applied
499
+ * policy actually closes {@link agentPort} on the pod it is about to hand
500
+ * back — and against which policy resources.
501
+ *
502
+ * **Unset means verify.** This is the one field here whose absent value is
503
+ * the strict one, because the deployment that needs the check is the one
504
+ * that would never have switched it on: the guest agent's own source calls
505
+ * the network rule in front of its port the boundary, and until this field
506
+ * existed nothing confirmed there was one.
507
+ *
508
+ * `{ engine: 'cilium' }` also enumerates that CNI's own policy CRD;
509
+ * `engine` otherwise defaults to `egress?.engine ?? 'core'`.
510
+ *
511
+ * `'unverified'` reads no policy and issues no request. It is the
512
+ * supported answer for a deployment whose boundary a namespaced Role
513
+ * cannot see — a cluster-scoped policy, a service mesh, a cloud security
514
+ * group — and it is a claim the deployment makes on purpose rather than a
515
+ * default it inherits. See `docs/sdk/kubernetes-sandbox.md`'s ingress
516
+ * section.
517
+ */
518
+ readonly ingress?: KubernetesIngressConfig;
519
+ /**
520
+ * How long a single Kubernetes API request may take, end to end —
521
+ * resolving the token, connecting, and reading the reply. Default
522
+ * `30000`; minimum `1000`; there is no value that turns it off.
523
+ *
524
+ * The caller's `signal` is optional everywhere and several of this
525
+ * backend's requests are SHARED flights that run under whichever caller
526
+ * arrived first, so a signal-less `destroy()` against an API server that
527
+ * accepted a request and never answered used to pin every later caller
528
+ * joined to it. Expiry rejects with `KubernetesApiTimeoutError`, which
529
+ * says nothing about whether the request was applied — the paths that
530
+ * send one already cope with not knowing.
531
+ */
532
+ readonly apiRequestTimeoutMs?: number;
533
+ /**
534
+ * Interval of the liveness heartbeat `openTerminal` and
535
+ * `openTcpConnection` streams negotiate with the guest. Default `15000`;
536
+ * `0` sends none, which is exactly how every release before this one
537
+ * behaved.
538
+ *
539
+ * A quiet shell is healthy, so nothing replaced the read-idle timer the
540
+ * transport clears once a stream is ready: a partition that delivered no
541
+ * FIN and no RST left `exited`/`closed` unresolved on the host and the
542
+ * shell's process group alive in the guest. Three missed intervals end
543
+ * the stream on both sides. It is negotiated per stream — the guest
544
+ * echoes the interval in its `ready` event and sends nothing new unless
545
+ * it did — so an older guest image behaves exactly as it does today.
546
+ */
547
+ readonly streamHeartbeatMs?: number;
548
+ /**
549
+ * Extra labels written onto every `SandboxClaim` this backend POSTs —
550
+ * `metadata.labels` only, never the pod's own labels. Unset means no
551
+ * labels beyond what the controller itself writes, and every claim body
552
+ * is byte-for-byte what it was before this option existed.
553
+ *
554
+ * The intended use is a host-instance identity, so a restarted host can
555
+ * find and {@link releaseKubernetesTaskSandboxes} a crashed predecessor's
556
+ * claims well before `claimTtlSeconds` reaps them on its own — see
557
+ * {@link readKubernetesTaskCapacity} for reading pool headroom
558
+ * alongside it.
559
+ */
560
+ readonly claimLabels?: Record<string, string>;
561
+ }
319
562
  /**
320
563
  * Egress allowlist resolution. Host-supplied policy decides whether
321
564
  * an outbound request is allowed before the proxy opens a socket.
@@ -433,8 +676,13 @@ export interface SandboxBackendOptions {
433
676
  export type SandboxProviderConfig = (SandboxProviderConfigBase & {
434
677
  readonly backend: ContainerBackendConfig;
435
678
  readonly layout: ContainerSandboxLayout;
679
+ }) | (SandboxProviderConfigBase & {
680
+ readonly backend: ACIStandbyPoolBackendConfig;
681
+ readonly layout: ContainerSandboxLayout;
436
682
  }) | (SandboxProviderConfigBase & {
437
683
  readonly backend: MicroVMBackendConfig;
684
+ }) | (SandboxProviderConfigBase & {
685
+ readonly backend: KubernetesBackendConfig;
438
686
  });
439
687
  interface SandboxProviderConfigBase {
440
688
  readonly defaultEgress?: EgressPolicy;
@@ -467,6 +715,106 @@ interface SandboxProviderConfigBase {
467
715
  * of a provider that confines nothing.
468
716
  */
469
717
  export declare function createSandboxProvider(config: SandboxProviderConfig): SandboxProvider;
718
+ /**
719
+ * Create — or reattach to — a persistent workspace on a cluster running the
720
+ * agent-sandbox controller.
721
+ *
722
+ * A workspace is the other half of this backend, and deliberately not
723
+ * something {@link createSandboxProvider} can hand out: a `SandboxProvider`
724
+ * promises an EPHEMERAL sandbox per run (`workspaceModes: ['ephemeral']`),
725
+ * while this returns one object with a name the caller chose, a disk that
726
+ * survives a suspend, and a lifetime nothing reaps on a timer. It is its own
727
+ * verb so that the difference is visible at the call site.
728
+ *
729
+ * `config.warmPoolName` is ignored here: a workspace is always a `Sandbox`
730
+ * POSTed directly, because a claim cannot carry the immutable disk spec.
731
+ * `config.sandboxTemplateName` is the default template, and
732
+ * `options.sandboxTemplateName` overrides it — a deployment normally has a
733
+ * task template with no disk and a workspace template with a block one.
734
+ *
735
+ * Resolves once the workspace is Ready, addressed and has proved it is
736
+ * deprivileged, exactly as `provider.create()` does for a task sandbox.
737
+ */
738
+ export declare function createKubernetesWorkspace(config: KubernetesBackendConfig, options: KubernetesWorkspaceOptions): Promise<KubernetesWorkspace>;
739
+ /**
740
+ * Every workspace this backend owns in the namespace, read off the objects
741
+ * and waking none of them.
742
+ *
743
+ * The inventory {@link createKubernetesWorkspace} cannot give you: it adopts
744
+ * AND resumes, so taking stock through it would start a pod for every
745
+ * suspended workspace it looked at. This issues one GET of the sandboxes
746
+ * collection and sends no PATCH and no DELETE — a suspended workspace is
747
+ * still suspended afterwards.
748
+ *
749
+ * Needs `list` on `sandboxes` in the namespace, which is the one RBAC verb
750
+ * the task path did not already require.
751
+ */
752
+ export declare function listKubernetesWorkspaces(config: KubernetesBackendConfig, options?: KubernetesWorkspaceTransitionOptions): Promise<readonly KubernetesWorkspaceSummary[]>;
753
+ /**
754
+ * Delete a workspace by id — the Sandbox, and with it the Pod, the Service
755
+ * and the PVC — without adopting or resuming it first.
756
+ *
757
+ * Exactly what `destroy({ deleteDisk: true })` does to the cluster, with the
758
+ * same guarantees: an object already gone counts as deleted, and a DELETE
759
+ * that fails rejects and stays retryable. The files are gone and nothing
760
+ * brings them back.
761
+ *
762
+ * It is the retention verb. Removing a month-old suspended workspace through
763
+ * a handle meant starting its pod and probing it purely to tell it to go
764
+ * away; the name is deterministic, so the object never needed opening.
765
+ */
766
+ export declare function deleteKubernetesWorkspace(config: KubernetesBackendConfig, workspaceId: string, options?: KubernetesWorkspaceTransitionOptions): Promise<void>;
767
+ /**
768
+ * Suspend a workspace by id: send the `operatingMode: Suspended` patch and
769
+ * wait for the pod to actually stop, without adopting the workspace.
770
+ *
771
+ * Resolves only once the pod is gone or in a terminal phase — a suspend is a
772
+ * promise that the disk is quiesced, and the patch being accepted says only
773
+ * that the controller has been asked. A pod that outlives `readyTimeoutMs`
774
+ * rejects with `KubernetesWorkspaceSuspendTimeoutError`, leaving the object
775
+ * as the patch left it.
776
+ *
777
+ * A handle another process is holding is not told. It finds out on its next
778
+ * call — which fails at the transport and is re-read into a
779
+ * `KubernetesWorkspaceSuspendedError` — or when that process calls
780
+ * `refresh()`.
781
+ *
782
+ * It takes the suspend options shape and REFUSES `quiesce` rather than
783
+ * accepting the flag and dropping it: this verb never dials the agent, so
784
+ * there is no connection here on which anything could be stopped. Quiescing
785
+ * needs a handle — `createKubernetesWorkspace()`, then
786
+ * `suspend({ quiesce: true })`.
787
+ */
788
+ export declare function suspendKubernetesWorkspace(config: KubernetesBackendConfig, workspaceId: string, options?: KubernetesWorkspaceSuspendOptions): Promise<void>;
789
+ /**
790
+ * Recover a crashed host's task-path claims: LIST every `SandboxClaim`
791
+ * carrying `options.labelSelector`, `DELETE` each, and report what was
792
+ * removed.
793
+ *
794
+ * Deletes claims only — the controller's own ownerReferences take the bound
795
+ * Sandbox, its Pod and its Service down behind each one; nothing here reads
796
+ * or touches those objects directly. `labelSelector` is REQUIRED and refused
797
+ * before any request goes out if it is empty: falling back to matching every
798
+ * claim would delete a live fleet's work.
799
+ *
800
+ * Pairs with `config.claimLabels`: a host stamps its own identity onto every
801
+ * claim it creates, and a restarted instance passes that same selector here
802
+ * to reclaim its predecessor's warm-pool capacity well before
803
+ * `claimTtlSeconds` would reap it on its own.
804
+ */
805
+ export declare function releaseKubernetesTaskSandboxes(config: KubernetesBackendConfig, options: KubernetesReleaseTaskSandboxesOptions): Promise<{
806
+ readonly deleted: number;
807
+ readonly names: readonly string[];
808
+ }>;
809
+ /**
810
+ * Read task-pool headroom before admitting more work: three GETs
811
+ * (`SandboxWarmPool`, the claims collection, the pods collection), no
812
+ * writes.
813
+ *
814
+ * Requires `config.warmPoolName` — a pool-less backend (every create is a
815
+ * direct Sandbox) has no `SandboxWarmPool` to report on.
816
+ */
817
+ export declare function readKubernetesTaskCapacity(config: KubernetesBackendConfig, options?: KubernetesReadTaskCapacityOptions): Promise<KubernetesTaskCapacity>;
470
818
  /**
471
819
  * Thrown by the factory when a backend is requested before its
472
820
  * implementation has landed. Makes the staged rollout legible —
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}