@alienplatform/sdk 3.3.26 → 3.3.28

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 (2) hide show
  1. package/dist/dist.js +103 -4
  2. package/package.json +5 -5
package/dist/dist.js CHANGED
@@ -5325,6 +5325,7 @@ const DeploymentStatusSchema = _enum([
5325
5325
  "initial-setup-failed",
5326
5326
  "provisioning",
5327
5327
  "waiting-for-machines",
5328
+ "waiting-for-secrets",
5328
5329
  "provisioning-failed",
5329
5330
  "running",
5330
5331
  "refresh-failed",
@@ -8341,7 +8342,7 @@ object({
8341
8342
  "failureDomainSpread": optional(object({}).catchall(int().min(0)).describe("Requested failure-domain spread keyed by capacity group.\nEmpty preserves the existing aggregate layout.")),
8342
8343
  "id": string().describe("Unique identifier for the container cluster.\nMust contain only alphanumeric characters, hyphens, and underscores."),
8343
8344
  "selectedFailureDomains": optional(object({}).catchall(array(string())).describe("Concrete provider failure domains selected during setup, keyed by capacity group.\nEmpty preserves the existing aggregate layout when no spread policy is configured."))
8344
- }).describe("ComputeCluster resource for running long-running container workloads.\n\nA ComputeCluster provides the setup-owned machine boundary for containers.\nAlien may manage the worker fleet inside that boundary when setup grants\n`compute-cluster/management`.\n\n## Architecture\n\n- **Setup** creates cloud resources: ASGs/MIGs/VMSSs, IAM roles, security groups\n- **Alien** manages allowed fleet operations: machine count and runtime\n machine image rollout\n- A node agent runs on each machine from the selected runtime image channel\n\n## Example\n\n```rust\nuse alien_core::{CapacityGroup, ComputeCluster, MachineProfile};\n\nlet cluster = ComputeCluster::new(\"compute\".to_string())\n .capacity_group(CapacityGroup {\n group_id: \"general\".to_string(),\n instance_type: None,\n profile: Some(MachineProfile {\n cpu: \"4.0\".to_string(),\n memory_bytes: 16 * 1024 * 1024 * 1024,\n ephemeral_storage_bytes: 20 * 1024 * 1024 * 1024,\n architecture: None,\n gpu: None,\n }),\n min_size: 1,\n max_size: 5,\n scale_policy: None,\n nested_virtualization: None,\n })\n .build();\n```");
8345
+ }).describe("ComputeCluster resource for running long-running container workloads.\n\nA ComputeCluster provides the setup-owned machine boundary for containers.\nAlien may manage the worker fleet inside that boundary when setup grants\n`compute-cluster/management`.\n\n## Architecture\n\n- **Setup** creates cloud resources: ASGs/MIGs/VMSSs, IAM roles, security groups\n- **Alien** manages allowed fleet operations: machine count, runtime\n machine image rollout and, on AWS, the machine type within one CPU architecture\n- A node agent runs on each machine from the selected runtime image channel\n\n## Example\n\n```rust\nuse alien_core::{CapacityGroup, ComputeCluster, MachineProfile};\n\nlet cluster = ComputeCluster::new(\"compute\".to_string())\n .capacity_group(CapacityGroup {\n group_id: \"general\".to_string(),\n instance_type: None,\n profile: Some(MachineProfile {\n cpu: \"4.0\".to_string(),\n memory_bytes: 16 * 1024 * 1024 * 1024,\n ephemeral_storage_bytes: 20 * 1024 * 1024 * 1024,\n architecture: None,\n gpu: None,\n }),\n min_size: 1,\n max_size: 5,\n scale_policy: None,\n nested_virtualization: None,\n })\n .build();\n```");
8345
8346
  /**
8346
8347
  * Generated by Kubb (https://kubb.dev/).
8347
8348
  * Do not edit manually.
@@ -8840,6 +8841,14 @@ const ContainerSecuritySchema = object({
8840
8841
  * Do not edit manually.
8841
8842
  */
8842
8843
  /**
8844
+ * @description A container port reachable from the control plane through the manager.\n\nRequests to `/v1/deployments/{deployment}/tunnels/{container}/...` on the\nmanager are forwarded to this port over the operator\'s outbound\nconnection, so the control plane can call the service without any inbound\nnetwork path into the deployment.
8845
+ */
8846
+ const ContainerTunnelSchema = object({ "port": int().min(0).describe("Container port that serves HTTP. Must be one of the container's ports.") }).describe("A container port reachable from the control plane through the manager.\n\nRequests to `/v1/deployments/{deployment}/tunnels/{container}/...` on the\nmanager are forwarded to this port over the operator's outbound\nconnection, so the control plane can call the service without any inbound\nnetwork path into the deployment.");
8847
+ /**
8848
+ * Generated by Kubb (https://kubb.dev/).
8849
+ * Do not edit manually.
8850
+ */
8851
+ /**
8843
8852
  * @description HTTP health check configuration.
8844
8853
  */
8845
8854
  const HealthCheckSchema = object({
@@ -8962,7 +8971,10 @@ object({
8962
8971
  return union([ContainerSecuritySchema, _null()]).optional();
8963
8972
  },
8964
8973
  "stateful": optional(boolean().describe("Whether container is stateful (gets stable ordinals, optional persistent volumes)")),
8965
- "stopGracePeriodSeconds": int().min(1).max(86400).describe("Grace period in seconds for stopping replicas during updates, drains, and deletes.\n\nWhen omitted, the runtime backend applies its default. Valid values are\n1 second through 24 hours.").nullish()
8974
+ "stopGracePeriodSeconds": int().min(1).max(86400).describe("Grace period in seconds for stopping replicas during updates, drains, and deletes.\n\nWhen omitted, the runtime backend applies its default. Valid values are\n1 second through 24 hours.").nullish(),
8975
+ get "tunnel"() {
8976
+ return union([ContainerTunnelSchema, _null()]).optional();
8977
+ }
8966
8978
  }).describe("Container resource for running long-running container workloads.\n\nA Container defines a deployable unit that runs on a ComputeCluster.\nThe managed container backend handles scheduling replicas across machines,\nautoscaling based on various metrics, and service discovery.\n\n## Example\n\n```rust\nuse alien_core::{Container, ContainerCode, ResourceSpec, ContainerAutoscaling, PublicEndpoint, ExposeProtocol};\n\nlet container = Container::new(\"api\".to_string())\n .cluster(\"compute\".to_string())\n .code(ContainerCode::Image {\n image: \"myapp:latest\".to_string(),\n })\n .cpu(ResourceSpec { min: \"0.5\".to_string(), desired: \"1\".to_string() })\n .memory(ResourceSpec { min: \"512Mi\".to_string(), desired: \"1Gi\".to_string() })\n .port(8080)\n .public_endpoint(PublicEndpoint {\n name: \"api\".to_string(),\n port: 8080,\n protocol: ExposeProtocol::Http,\n host_label: None,\n wildcard_subdomains: false,\n })\n .autoscaling(ContainerAutoscaling {\n min: 2,\n desired: 3,\n max: 10,\n target_cpu_percent: Some(70.0),\n target_memory_percent: None,\n target_http_in_flight_per_replica: Some(100),\n max_http_p95_latency_ms: None,\n })\n .permissions(\"container-execution\".to_string())\n .build();\n```");
8967
8979
  object({
8968
8980
  "command": string().describe("Command name (e.g., \"generate-report\", \"sync-data\")"),
@@ -9255,6 +9267,60 @@ object({
9255
9267
  * Do not edit manually.
9256
9268
  */
9257
9269
  /**
9270
+ * @description The secret store a deployer writes a vault-native secret into.
9271
+ */
9272
+ const DeployerSecretStoreSchema = _enum([
9273
+ "aws-parameter-store",
9274
+ "gcp-secret-manager",
9275
+ "azure-key-vault",
9276
+ "kubernetes-secret",
9277
+ "local-vault"
9278
+ ]).describe("The secret store a deployer writes a vault-native secret into.");
9279
+ /**
9280
+ * Generated by Kubb (https://kubb.dev/).
9281
+ * Do not edit manually.
9282
+ */
9283
+ /**
9284
+ * @description Where a deployer writes a vault-native secret.
9285
+ */
9286
+ const DeployerSecretLocationSchema = object({
9287
+ "cliCommand": string().describe("Command that writes the value, with `<VALUE>` in place of the secret."),
9288
+ "consoleUrl": string().describe("Cloud console page where the secret is created, when the store has one.").nullish(),
9289
+ "name": string().describe("Full name of the secret in that store."),
9290
+ get "store"() {
9291
+ return DeployerSecretStoreSchema.describe("The secret store a deployer writes a vault-native secret into.");
9292
+ },
9293
+ "vaultName": string().describe("The Azure Key Vault that holds the secret. Other stores resolve `name`\nin the stack's own account or project.").nullish()
9294
+ }).describe("Where a deployer writes a vault-native secret.");
9295
+ /**
9296
+ * Generated by Kubb (https://kubb.dev/).
9297
+ * Do not edit manually.
9298
+ */
9299
+ /**
9300
+ * @description Whether a deployer secret slot holds a usable value. Alien learns this from\nmetadata only and never reads the value.
9301
+ */
9302
+ const DeployerSecretStatusSchema = _enum([
9303
+ "present",
9304
+ "missing",
9305
+ "invalid"
9306
+ ]).describe("Whether a deployer secret slot holds a usable value. Alien learns this from\nmetadata only and never reads the value.");
9307
+ object({
9308
+ "inputId": string().describe("Stack input id."),
9309
+ "label": string().describe("The input's label."),
9310
+ get "location"() {
9311
+ return DeployerSecretLocationSchema.describe("Where a deployer writes a vault-native secret.");
9312
+ },
9313
+ "message": string().describe("Why the slot is invalid.").nullish(),
9314
+ "required": boolean().describe("Whether the workload cannot start without it."),
9315
+ get "status"() {
9316
+ return DeployerSecretStatusSchema.describe("Whether a deployer secret slot holds a usable value. Alien learns this from\nmetadata only and never reads the value.");
9317
+ }
9318
+ }).describe("The state of one deployer secret slot, reported with the deployment.");
9319
+ /**
9320
+ * Generated by Kubb (https://kubb.dev/).
9321
+ * Do not edit manually.
9322
+ */
9323
+ /**
9258
9324
  * @description Deployment model: how updates are delivered to the remote environment.
9259
9325
  */
9260
9326
  const DeploymentModelSchema = _enum(["push", "pull"]).describe("Deployment model: how updates are delivered to the remote environment.");
@@ -9398,6 +9464,14 @@ object({
9398
9464
  * Do not edit manually.
9399
9465
  */
9400
9466
  /**
9467
+ * @description Reachability of the deployment\'s public endpoints, fixed at setup.
9468
+ */
9469
+ const EndpointAccessSchema = _enum(["internet", "private"]).describe("Reachability of the deployment's public endpoints, fixed at setup.");
9470
+ /**
9471
+ * Generated by Kubb (https://kubb.dev/).
9472
+ * Do not edit manually.
9473
+ */
9474
+ /**
9401
9475
  * @description Response handling configuration for deployments
9402
9476
  */
9403
9477
  const ResponseHandlingSchema = object({
@@ -11203,7 +11277,7 @@ const SandboxEgressSchema = union([
11203
11277
  * @description How long a sandbox may live and when it is paused.\n\nDeclaration-time ceilings, not per-request values: every sandbox created through this\ndeclaration\'s binding is held to them, whatever a caller asks for at runtime.
11204
11278
  */
11205
11279
  const SandboxLifecyclePolicySchema = object({
11206
- "idlePauseSeconds": int().min(0).describe("Idle period after which the sandbox is paused, where the platform supports it").nullish(),
11280
+ "idlePauseSeconds": int().min(0).describe("Idle period after which the sandbox is paused, where the platform supports it.\n\nStored state written before the rename calls this `idleSuspendSeconds`.").nullish(),
11207
11281
  "maxLifetimeSeconds": int().min(0).describe("Wall-clock ceiling on a single sandbox, after which the platform terminates it.\n\nOptional because not every backend has the primitive: Kubernetes has\n`activeDeadlineSeconds` and AWS `maximumDurationInSeconds`, while neither Azure nor Local\nexpose one, so declaring a ceiling there is refused at plan time rather than accepted and\nnever applied. AWS caps it at 8 hours.").nullish()
11208
11282
  }).describe("How long a sandbox may live and when it is paused.\n\nDeclaration-time ceilings, not per-request values: every sandbox created through this\ndeclaration's binding is held to them, whatever a caller asks for at runtime.");
11209
11283
  /**
@@ -11224,6 +11298,14 @@ object({
11224
11298
  "identifier": string().describe("Platform-specific identifier for the parent (image ARN, sandbox group id, namespace)").nullish(),
11225
11299
  "parentName": string().describe("Name of the durable parent that sandboxes are created inside")
11226
11300
  }).describe("Outputs generated by a successfully provisioned Sandbox parent.");
11301
+ /**
11302
+ * Generated by Kubb (https://kubb.dev/).
11303
+ * Do not edit manually.
11304
+ */
11305
+ /**
11306
+ * @description Opt-in supervisor-owned network enforcement. Caller requests cannot change this identity.
11307
+ */
11308
+ const SandboxPrivilegedSupervisorSchema = object({ "commandUid": int().min(0).describe("Nonzero numeric uid and primary gid for every command, including the image entrypoint.") }).describe("Opt-in supervisor-owned network enforcement. Caller requests cannot change this identity.");
11227
11309
  object({
11228
11310
  get "code"() {
11229
11311
  return SandboxCodeSchema.describe("Specifies where the sandbox's root filesystem comes from.");
@@ -11239,7 +11321,10 @@ object({
11239
11321
  return union([SandboxLimitsSchema, _null()]).optional();
11240
11322
  },
11241
11323
  "previewPorts": optional(array(int().min(0)).describe("Ports eligible for a preview capability. An application reaches its sandbox through the\nprovider, so it cannot widen its own ingress at runtime; a holder of a remote binding's\ncredentials is bounded by no port condition, which is why a remote sandbox declares none.")),
11242
- "privateBaseImage": string().describe("Private ECR base image an AWS build pulls; `code.image` names only the S3 bundle, so this is\nwhat the cross-account grant opens. Live only: the grant needs the customer account,\nwhich registration reports. Absent means the base image is pulled anonymously.").nullish()
11324
+ "privateBaseImage": string().describe("Private ECR base image an AWS build pulls; `code.image` names only the S3 bundle, so this is\nwhat the cross-account grant opens. Live only: the grant needs the customer account,\nwhich registration reports. Absent means the base image is pulled anonymously.").nullish(),
11325
+ get "privilegedSupervisor"() {
11326
+ return union([SandboxPrivilegedSupervisorSchema, _null()]).optional();
11327
+ }
11243
11328
  }).describe("An isolated environment for running untrusted code, created at runtime.");
11244
11329
  object({ "timestamp": datetime().describe("The timestamp when the event was scheduled or triggered.") }).describe("Represents a scheduled event trigger, typically from a cron job or timer.\n\nThis struct aims to provide a common representation for scheduled events\nacross different providers like AWS CloudWatch Events, Google Cloud Scheduler,\nand Azure Timer Triggers.");
11245
11330
  object({
@@ -11289,6 +11374,9 @@ const StackSettingsSchema = object({
11289
11374
  get "domains"() {
11290
11375
  return union([DomainSettingsSchema, _null()]).optional();
11291
11376
  },
11377
+ get "endpointAccess"() {
11378
+ return EndpointAccessSchema.describe("Reachability of the deployment's public endpoints, fixed at setup.").optional();
11379
+ },
11292
11380
  "externalBindings": object({}).describe("External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms.").nullish(),
11293
11381
  get "heartbeats"() {
11294
11382
  return HeartbeatsModeSchema.describe("How heartbeat health checks are handled.").optional();
@@ -11400,6 +11488,14 @@ const StackInputEnvironmentMappingSchema = object({
11400
11488
  * Do not edit manually.
11401
11489
  */
11402
11490
  /**
11491
+ * @description Asks Alien to generate a secret input\'s value.\n\nThe value is an alphanumeric string (`A-Z`, `a-z`, `0-9`), so it is safe in\nconnection strings, command lines and environment variables. It is generated\nonce, when the deployment\'s input values are first resolved, and then kept\nwith the deployment\'s other input values.
11492
+ */
11493
+ const StackInputGenerateSchema = object({ "length": int().min(0).describe("Number of characters to generate.") }).describe("Asks Alien to generate a secret input's value.\n\nThe value is an alphanumeric string (`A-Z`, `a-z`, `0-9`), so it is safe in\nconnection strings, command lines and environment variables. It is generated\nonce, when the deployment's input values are first resolved, and then kept\nwith the deployment's other input values.");
11494
+ /**
11495
+ * Generated by Kubb (https://kubb.dev/).
11496
+ * Do not edit manually.
11497
+ */
11498
+ /**
11403
11499
  * @description Primitive stack input kind.
11404
11500
  */
11405
11501
  const StackInputKindSchema = _enum([
@@ -11452,6 +11548,9 @@ const StackInputDefinitionSchema = object({
11452
11548
  get "env"() {
11453
11549
  return array(StackInputEnvironmentMappingSchema.describe("How a resolved stack input is injected into runtime environment variables.")).describe("Runtime env-var mappings for v1 input resolution.").optional();
11454
11550
  },
11551
+ get "generate"() {
11552
+ return union([StackInputGenerateSchema, _null()]).optional();
11553
+ },
11455
11554
  "id": string().describe("Stable input ID used by CLI/API calls."),
11456
11555
  get "kind"() {
11457
11556
  return StackInputKindSchema.describe("Primitive stack input kind.");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alienplatform/sdk",
3
- "version": "3.3.26",
3
+ "version": "3.3.28",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -56,10 +56,10 @@
56
56
  "@grpc/grpc-js": "^1.14.4",
57
57
  "nice-grpc": "^2.1.11",
58
58
  "nice-grpc-common": "^2.0.2",
59
- "zod": "4.5.2",
60
- "@alienplatform/ai-gateway": "^3.3.26",
61
- "@alienplatform/bindings": "^3.3.26",
62
- "@alienplatform/core": "^3.3.26"
59
+ "zod": "^4.5.2",
60
+ "@alienplatform/ai-gateway": "^3.3.28",
61
+ "@alienplatform/bindings": "^3.3.28",
62
+ "@alienplatform/core": "^3.3.28"
63
63
  },
64
64
  "scripts": {
65
65
  "build": "tsdown && tsc --emitDeclarationOnly",