@sylphx/contract 0.5.1 → 0.7.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 (168) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/README.md +1 -1
  3. package/dist/compute.d.ts +33 -0
  4. package/dist/compute.d.ts.map +1 -0
  5. package/dist/compute.js +119 -0
  6. package/dist/endpoint.d.ts +3 -1
  7. package/dist/endpoint.d.ts.map +1 -1
  8. package/dist/endpoints/admin-audit.d.ts +2 -2
  9. package/dist/endpoints/admin-audit.js +2 -2
  10. package/dist/endpoints/admin-bootstrap.js +3 -3
  11. package/dist/endpoints/admin-branch-databases.d.ts +1 -1
  12. package/dist/endpoints/admin-branch-databases.js +2 -2
  13. package/dist/endpoints/admin-config.d.ts +3 -0
  14. package/dist/endpoints/admin-config.d.ts.map +1 -1
  15. package/dist/endpoints/admin-config.js +9 -1
  16. package/dist/endpoints/admin-envs-spec.d.ts +27 -0
  17. package/dist/endpoints/admin-envs-spec.d.ts.map +1 -0
  18. package/dist/endpoints/admin-envs-spec.js +25 -0
  19. package/dist/endpoints/admin-projects.d.ts +1 -1
  20. package/dist/endpoints/admin-rate-limits.d.ts +1 -1
  21. package/dist/endpoints/admin-rate-limits.js +3 -3
  22. package/dist/endpoints/admin-secrets.d.ts +3 -3
  23. package/dist/endpoints/admin-secrets.js +1 -1
  24. package/dist/endpoints/admin-services.d.ts +3 -3
  25. package/dist/endpoints/admin-services.d.ts.map +1 -1
  26. package/dist/endpoints/admin-services.js +4 -5
  27. package/dist/endpoints/ai-admin.d.ts +134 -5
  28. package/dist/endpoints/ai-admin.d.ts.map +1 -1
  29. package/dist/endpoints/analytics-admin.d.ts +141 -6
  30. package/dist/endpoints/analytics-admin.d.ts.map +1 -1
  31. package/dist/endpoints/analytics-admin.js +7 -7
  32. package/dist/endpoints/auth.d.ts +26 -8
  33. package/dist/endpoints/auth.d.ts.map +1 -1
  34. package/dist/endpoints/auth.js +5 -5
  35. package/dist/endpoints/branch-databases.d.ts +13 -7
  36. package/dist/endpoints/branch-databases.d.ts.map +1 -1
  37. package/dist/endpoints/branch-databases.js +3 -3
  38. package/dist/endpoints/databases.d.ts +100 -164
  39. package/dist/endpoints/databases.d.ts.map +1 -1
  40. package/dist/endpoints/databases.js +8 -35
  41. package/dist/endpoints/deployments.d.ts +1 -3
  42. package/dist/endpoints/deployments.d.ts.map +1 -1
  43. package/dist/endpoints/deployments.js +1 -1
  44. package/dist/endpoints/domains.d.ts +7 -1
  45. package/dist/endpoints/domains.d.ts.map +1 -1
  46. package/dist/endpoints/email-admin.d.ts +1 -0
  47. package/dist/endpoints/email-admin.d.ts.map +1 -1
  48. package/dist/endpoints/environments.d.ts +11 -42
  49. package/dist/endpoints/environments.d.ts.map +1 -1
  50. package/dist/endpoints/flags-admin.d.ts +8 -0
  51. package/dist/endpoints/flags-admin.d.ts.map +1 -1
  52. package/dist/endpoints/image-opt.d.ts +5 -13
  53. package/dist/endpoints/image-opt.d.ts.map +1 -1
  54. package/dist/endpoints/image-opt.js +6 -18
  55. package/dist/endpoints/kv-admin.d.ts +0 -1
  56. package/dist/endpoints/kv-admin.d.ts.map +1 -1
  57. package/dist/endpoints/notifications-admin.d.ts +4 -4
  58. package/dist/endpoints/organizations.d.ts +8 -6
  59. package/dist/endpoints/organizations.d.ts.map +1 -1
  60. package/dist/endpoints/project-manifest.d.ts +362 -354
  61. package/dist/endpoints/project-manifest.d.ts.map +1 -1
  62. package/dist/endpoints/projects.d.ts +0 -8
  63. package/dist/endpoints/projects.d.ts.map +1 -1
  64. package/dist/endpoints/realtime-admin.d.ts +0 -1
  65. package/dist/endpoints/realtime-admin.d.ts.map +1 -1
  66. package/dist/endpoints/realtime-admin.js +1 -1
  67. package/dist/endpoints/regions.d.ts +2 -4
  68. package/dist/endpoints/regions.d.ts.map +1 -1
  69. package/dist/endpoints/regions.js +2 -2
  70. package/dist/endpoints/tasks.d.ts +2 -6
  71. package/dist/endpoints/tasks.d.ts.map +1 -1
  72. package/dist/hono-app.d.ts +3 -3
  73. package/dist/hono-app.js +2 -2
  74. package/dist/index.d.ts +852 -632
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +7 -0
  77. package/dist/schemas/_primitives.d.ts +14 -0
  78. package/dist/schemas/_primitives.d.ts.map +1 -1
  79. package/dist/schemas/_primitives.js +16 -0
  80. package/dist/schemas/admin-audit.d.ts +4 -4
  81. package/dist/schemas/admin-audit.js +3 -3
  82. package/dist/schemas/admin-bootstrap.d.ts +1 -1
  83. package/dist/schemas/admin-bootstrap.js +1 -1
  84. package/dist/schemas/admin-builds.d.ts +1 -1
  85. package/dist/schemas/admin-builds.js +1 -1
  86. package/dist/schemas/admin-config.d.ts +4 -0
  87. package/dist/schemas/admin-config.d.ts.map +1 -1
  88. package/dist/schemas/admin-config.js +3 -0
  89. package/dist/schemas/admin-envs-spec.d.ts +49 -0
  90. package/dist/schemas/admin-envs-spec.d.ts.map +1 -0
  91. package/dist/schemas/admin-envs-spec.js +58 -0
  92. package/dist/schemas/admin-projects.d.ts +2 -2
  93. package/dist/schemas/admin-projects.js +1 -1
  94. package/dist/schemas/admin-rate-limits.d.ts +2 -2
  95. package/dist/schemas/admin-rate-limits.js +2 -2
  96. package/dist/schemas/admin-secrets.d.ts +14 -14
  97. package/dist/schemas/admin-secrets.d.ts.map +1 -1
  98. package/dist/schemas/admin-secrets.js +10 -10
  99. package/dist/schemas/admin-services.d.ts +18 -22
  100. package/dist/schemas/admin-services.d.ts.map +1 -1
  101. package/dist/schemas/admin-services.js +15 -19
  102. package/dist/schemas/ai-admin.d.ts +137 -8
  103. package/dist/schemas/ai-admin.d.ts.map +1 -1
  104. package/dist/schemas/ai-admin.js +119 -13
  105. package/dist/schemas/analytics-admin.d.ts +164 -7
  106. package/dist/schemas/analytics-admin.d.ts.map +1 -1
  107. package/dist/schemas/analytics-admin.js +104 -3
  108. package/dist/schemas/auth.d.ts +2 -1
  109. package/dist/schemas/auth.d.ts.map +1 -1
  110. package/dist/schemas/auth.js +2 -1
  111. package/dist/schemas/branch-database.d.ts +25 -18
  112. package/dist/schemas/branch-database.d.ts.map +1 -1
  113. package/dist/schemas/branch-database.js +15 -14
  114. package/dist/schemas/database.d.ts +13 -19
  115. package/dist/schemas/database.d.ts.map +1 -1
  116. package/dist/schemas/database.js +7 -19
  117. package/dist/schemas/deployment.d.ts +5 -7
  118. package/dist/schemas/deployment.d.ts.map +1 -1
  119. package/dist/schemas/deployment.js +6 -6
  120. package/dist/schemas/domain.d.ts +3 -1
  121. package/dist/schemas/domain.d.ts.map +1 -1
  122. package/dist/schemas/domain.js +2 -1
  123. package/dist/schemas/email-admin.d.ts +1 -0
  124. package/dist/schemas/email-admin.d.ts.map +1 -1
  125. package/dist/schemas/email-admin.js +1 -0
  126. package/dist/schemas/environment.d.ts +17 -31
  127. package/dist/schemas/environment.d.ts.map +1 -1
  128. package/dist/schemas/environment.js +11 -16
  129. package/dist/schemas/flags-admin.d.ts +13 -0
  130. package/dist/schemas/flags-admin.d.ts.map +1 -1
  131. package/dist/schemas/flags-admin.js +6 -0
  132. package/dist/schemas/ids.d.ts +4 -0
  133. package/dist/schemas/ids.d.ts.map +1 -1
  134. package/dist/schemas/ids.js +2 -0
  135. package/dist/schemas/image-opt.d.ts +10 -11
  136. package/dist/schemas/image-opt.d.ts.map +1 -1
  137. package/dist/schemas/image-opt.js +11 -12
  138. package/dist/schemas/kv-admin.d.ts +0 -1
  139. package/dist/schemas/kv-admin.d.ts.map +1 -1
  140. package/dist/schemas/kv-admin.js +0 -1
  141. package/dist/schemas/notifications-admin.d.ts +6 -6
  142. package/dist/schemas/notifications-admin.js +1 -1
  143. package/dist/schemas/organization.d.ts +8 -6
  144. package/dist/schemas/organization.d.ts.map +1 -1
  145. package/dist/schemas/organization.js +11 -6
  146. package/dist/schemas/project-manifest.d.ts +458 -455
  147. package/dist/schemas/project-manifest.d.ts.map +1 -1
  148. package/dist/schemas/project-manifest.js +66 -56
  149. package/dist/schemas/project.d.ts +0 -6
  150. package/dist/schemas/project.d.ts.map +1 -1
  151. package/dist/schemas/project.js +0 -2
  152. package/dist/schemas/realtime-admin.d.ts +0 -1
  153. package/dist/schemas/realtime-admin.d.ts.map +1 -1
  154. package/dist/schemas/realtime-admin.js +0 -1
  155. package/dist/schemas/realtime.d.ts +2 -2
  156. package/dist/schemas/realtime.js +2 -2
  157. package/dist/schemas/region.d.ts +3 -21
  158. package/dist/schemas/region.d.ts.map +1 -1
  159. package/dist/schemas/region.js +2 -11
  160. package/dist/schemas/resources.d.ts +213 -164
  161. package/dist/schemas/resources.d.ts.map +1 -1
  162. package/dist/schemas/resources.js +87 -105
  163. package/dist/schemas/storage.d.ts +1 -1
  164. package/dist/schemas/storage.js +1 -1
  165. package/dist/schemas/tasks.d.ts +3 -8
  166. package/dist/schemas/tasks.d.ts.map +1 -1
  167. package/dist/schemas/tasks.js +1 -4
  168. package/package.json +5 -1
@@ -25,10 +25,10 @@ export type Slug = typeof Slug.Type;
25
25
  /** Environment name — closed enum matches ADR-080 environment types. */
26
26
  export declare const ManifestEnvName: Schema.Literal<["production", "staging", "preview", "development"]>;
27
27
  export type ManifestEnvName = typeof ManifestEnvName.Type;
28
- /** Hetzner region starter set; extend as new regions come online. */
28
+ /** Public region slug. The platform maps this to provider capacity internally. */
29
29
  export declare const ManifestRegion: Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>;
30
30
  export type ManifestRegion = typeof ManifestRegion.Type;
31
- /** Machine size tiers — shared between build runners and service containers. */
31
+ /** Compute size tiers — shared between build runners and runtime services. */
32
32
  export declare const MachineSize: Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>;
33
33
  export type MachineSize = typeof MachineSize.Type;
34
34
  /** Build runner size — smaller enum than MachineSize (no nano/micro). */
@@ -40,13 +40,16 @@ export type BuildpackName = typeof BuildpackName.Type;
40
40
  /** Build strategy hint. `dockerfile` pins the build to the declared Dockerfile. */
41
41
  export declare const BuildStrategy: Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>;
42
42
  export type BuildStrategy = typeof BuildStrategy.Type;
43
- /** Service type discriminant — drives K8s workload shape (Deployment/Job). */
43
+ /** Service type discriminant — drives the platform runtime shape. */
44
44
  export declare const ServiceType: Schema.Literal<["web", "worker", "cron", "function"]>;
45
45
  export type ServiceType = typeof ServiceType.Type;
46
- /** Deploy strategy `rolling` is the Sylphx default (ArgoCD PreSync-gated). */
46
+ /** Public instance count for user-declared services. */
47
+ export declare const ManifestServiceInstanceCount: Schema.filter<Schema.filter<typeof Schema.Number>>;
48
+ export type ManifestServiceInstanceCount = typeof ManifestServiceInstanceCount.Type;
49
+ /** Deploy strategy — `rolling` is the Sylphx default. */
47
50
  export declare const DeployStrategy: Schema.Literal<["rolling", "blue-green", "immediate"]>;
48
51
  export type DeployStrategy = typeof DeployStrategy.Type;
49
- /** WWW-apex redirect policy at the Gateway API listener. */
52
+ /** WWW-apex redirect policy. */
50
53
  export declare const WwwRedirect: Schema.Literal<["apex", "www", "none"]>;
51
54
  export type WwwRedirect = typeof WwwRedirect.Type;
52
55
  export declare const ManifestProjectSection: Schema.Struct<{
@@ -92,10 +95,10 @@ export type ManifestBuildSection = typeof ManifestBuildSection.Type;
92
95
  export declare const ManifestDeploySection: Schema.Struct<{
93
96
  /**
94
97
  * Command run before traffic cutover (DB migrations via expand-and-
95
- * contract). Runs as an ArgoCD PreSync Job (sync-wave "-1"). ADR-066.2.
98
+ * contract). Runs before the new release accepts traffic. ADR-066.2.
96
99
  */
97
100
  release_command: Schema.optional<typeof Schema.String>;
98
- /** HTTP path for K8s readinessProbe. */
101
+ /** HTTP readiness path. */
99
102
  health_check_path: Schema.optional<typeof Schema.String>;
100
103
  /** Timeout in seconds. */
101
104
  health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
@@ -119,8 +122,8 @@ export declare const ManifestServiceHealthSection: Schema.Struct<{
119
122
  command: Schema.optional<typeof Schema.String>;
120
123
  }>;
121
124
  export type ManifestServiceHealthSection = typeof ManifestServiceHealthSection.Type;
122
- export declare const ManifestServiceSection: Schema.Struct<{
123
- /** Service name — unique within project. Used as K8s Deployment name. */
125
+ export declare const ManifestServiceSection: Schema.filter<Schema.Struct<{
126
+ /** Service name — unique within project. */
124
127
  name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
125
128
  type: Schema.Literal<["web", "worker", "cron", "function"]>;
126
129
  /** Per-service build override. Root [build] remains the default. */
@@ -137,48 +140,50 @@ export declare const ManifestServiceSection: Schema.Struct<{
137
140
  path: Schema.optional<typeof Schema.String>;
138
141
  command: Schema.optional<typeof Schema.String>;
139
142
  }>>;
140
- /** Container start command. */
143
+ /** Service start command. */
141
144
  command: Schema.optional<typeof Schema.String>;
142
- /** Internal container port; required for `web`. */
143
- port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
144
145
  /**
145
- * Public HTTP port (Gateway API listener). Defaults to 443 for web.
146
- * Most users leave unset.
146
+ * Command run before this service receives traffic. Kept service-scoped for
147
+ * apps that need one migration/release hook tied to a specific image.
147
148
  */
148
- internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
149
- /** Replica count. Ignored for `cron`. */
150
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
151
- /** Compute size; maps to per-service K8s resources.requests/limits. */
149
+ release_command: Schema.optional<typeof Schema.String>;
150
+ /** Service port; required for `web` when it cannot be detected automatically. */
151
+ port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
152
+ /** Explicit instance count. Ignored for `cron`. */
153
+ instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
154
+ /** Compute size; maps to per-service runtime resources. */
152
155
  instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
153
156
  /** Required when type=cron. Standard 5-field cron expression. */
154
157
  cron_schedule: Schema.optional<typeof Schema.String>;
155
158
  /** Optional per-service region override. */
156
159
  regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
157
- /**
158
- * Scale-to-zero (KEDA). `false` (default) = pinned at `min_replicas >= 1`;
159
- * `true` = the reconciler emits a KEDA ScaledObject and lets KEDA drive
160
- * the replica count from 0 → N on incoming traffic (docs/design/scale-to-zero.md).
161
- */
160
+ /** Scale-to-zero. `false` (default) = pinned at `min_instances >= 1`. */
162
161
  scale_to_zero: Schema.optional<typeof Schema.Boolean>;
163
162
  /**
164
- * Seconds of no traffic before KEDA scales the Deployment down to 0.
165
- * Maps to KEDA `cooldownPeriod`. Only meaningful when `scale_to_zero=true`.
163
+ * Seconds of no traffic before the platform scales the service down to 0.
164
+ * Only meaningful when `scale_to_zero=true`.
166
165
  * Range: 60s–3600s. Default: 300 (5 min).
167
166
  */
168
167
  idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
169
168
  /**
170
- * Minimum replica count. Default: `0` when `scale_to_zero=true`, else `1`.
171
- * Setting `min_replicas=1` alongside `scale_to_zero=true` keeps a warm
172
- * floor while still letting KEDA scale horizontally beyond 1.
169
+ * Minimum instance count. Default: `0` when `scale_to_zero=true`, else `1`.
170
+ * Setting `min_instances=1` alongside `scale_to_zero=true` keeps a warm
171
+ * floor while still allowing horizontal scale-out beyond 1.
173
172
  */
174
- min_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
173
+ min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
174
+ /** Optional upper bound for platform-managed horizontal scale-out. */
175
+ max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
175
176
  /** Per-service env var merge — refs entries from top-level [env]. */
176
177
  env: Schema.optional<Schema.Array$<typeof Schema.String>>;
177
- /** Per-service resource bindings (by resource name). */
178
+ /**
179
+ * Reserved for declarative service-scoped managed resource bindings.
180
+ * Current push-webhook support is environment-scoped via top-level [resources.*],
181
+ * so deploy parsing fails closed if this field is present.
182
+ */
178
183
  resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
179
184
  /** Paths whose changes should trigger this service in monorepos. */
180
185
  watch_paths: Schema.optional<Schema.Array$<typeof Schema.String>>;
181
- }>;
186
+ }>>;
182
187
  export type ManifestServiceSection = typeof ManifestServiceSection.Type;
183
188
  export declare const ManifestMigrationEngine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
184
189
  export type ManifestMigrationEngine = typeof ManifestMigrationEngine.Type;
@@ -208,8 +213,8 @@ export type ManifestDatabaseSection = typeof ManifestDatabaseSection.Type;
208
213
  * Env var value — literal, secret reference, or resource attribute.
209
214
  * Values are NEVER stored in the manifest — always by reference.
210
215
  * `from_secret` resolves via the platform `secrets` table (AES-256-GCM).
211
- * `from_resource` + `attr` resolves via the `resources` table; valid
212
- * attributes: `connection_url | host | port | user | password | database`.
216
+ * `from_resource` + `attr` resolves product-level outputs such as
217
+ * `database_url`, `cache_url`, `search_url`, and `volume_mount_path`.
213
218
  */
214
219
  export declare const ManifestEnvValue: Schema.Union<[Schema.Struct<{
215
220
  value: typeof Schema.String;
@@ -244,51 +249,47 @@ export declare const KvTier: Schema.Literal<["nano", "micro", "standard", "large
244
249
  export type KvTier = typeof KvTier.Type;
245
250
  export declare const ManifestVolumeTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
246
251
  export type ManifestVolumeTier = typeof ManifestVolumeTier.Type;
247
- export declare const ManifestVolumeAccessMode: Schema.Literal<["ReadWriteOnce", "ReadWriteMany"]>;
248
- export type ManifestVolumeAccessMode = typeof ManifestVolumeAccessMode.Type;
252
+ export declare const ManifestVolumeSharing: Schema.Literal<["single-writer", "shared"]>;
253
+ export type ManifestVolumeSharing = typeof ManifestVolumeSharing.Type;
249
254
  export declare const ManifestDatabaseEngine: Schema.Literal<["postgres"]>;
250
255
  export type ManifestDatabaseEngine = typeof ManifestDatabaseEngine.Type;
251
- export declare const ManifestKvEngine: Schema.Literal<["valkey"]>;
252
- export type ManifestKvEngine = typeof ManifestKvEngine.Type;
253
- export declare const ManifestSearchEngine: Schema.Literal<["typesense"]>;
254
- export type ManifestSearchEngine = typeof ManifestSearchEngine.Type;
255
256
  export declare const ManifestDatabaseResource: Schema.Struct<{
256
257
  /** Capability-specific engine. PostgreSQL is the first supported database engine. */
257
258
  engine: Schema.optional<Schema.Literal<["postgres"]>>;
258
- /** CNPG tier; IMMUTABLE after creation. */
259
+ /** Product tier; IMMUTABLE after creation. */
259
260
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
260
261
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
261
262
  version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
262
- /** Enable CNPG read-replica(s). */
263
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
263
+ /** Optional managed read replicas. */
264
+ read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
264
265
  /** Branch-per-preview (P0 gap #4 sibling). */
265
266
  branch_on_preview: Schema.optional<typeof Schema.Boolean>;
266
267
  }>;
267
268
  export type ManifestDatabaseResource = typeof ManifestDatabaseResource.Type;
268
269
  export declare const ManifestKvResource: Schema.Struct<{
269
- /** Capability-specific engine. Valkey is the first supported KV engine. */
270
- engine: Schema.optional<Schema.Literal<["valkey"]>>;
270
+ engine: Schema.optionalWith<typeof Schema.Never, {
271
+ exact: true;
272
+ }>;
271
273
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
272
274
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
273
275
  }>;
274
276
  export type ManifestKvResource = typeof ManifestKvResource.Type;
275
277
  export declare const ManifestSearchResource: Schema.Struct<{
276
- /** Capability-specific engine. Typesense is the first supported search engine. */
277
- engine: Schema.optional<Schema.Literal<["typesense"]>>;
278
+ engine: Schema.optionalWith<typeof Schema.Never, {
279
+ exact: true;
280
+ }>;
278
281
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
279
282
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
280
- nodes: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
281
283
  }>;
282
284
  export type ManifestSearchResource = typeof ManifestSearchResource.Type;
283
285
  export declare const ManifestVolumeResource: Schema.Struct<{
284
286
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
285
287
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
286
288
  /**
287
- * ReadWriteMany is required when a volume is shared by multiple sandboxes,
288
- * workers, or replicas. ReadWriteOnce remains valid for single-writer app
289
- * disks.
289
+ * Public sharing intent. The platform maps this to the best backend storage
290
+ * class without exposing implementation details.
290
291
  */
291
- access_mode: Schema.optional<Schema.Literal<["ReadWriteOnce", "ReadWriteMany"]>>;
292
+ sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
292
293
  /**
293
294
  * Optional env-facing path metadata. This does not mount the volume into an
294
295
  * app service by itself; service/task mounts stay explicit bindings.
@@ -305,37 +306,37 @@ export declare const ManifestResourcesSection: Schema.Struct<{
305
306
  database: Schema.optional<Schema.Struct<{
306
307
  /** Capability-specific engine. PostgreSQL is the first supported database engine. */
307
308
  engine: Schema.optional<Schema.Literal<["postgres"]>>;
308
- /** CNPG tier; IMMUTABLE after creation. */
309
+ /** Product tier; IMMUTABLE after creation. */
309
310
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
310
311
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
311
312
  version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
312
- /** Enable CNPG read-replica(s). */
313
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
313
+ /** Optional managed read replicas. */
314
+ read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
314
315
  /** Branch-per-preview (P0 gap #4 sibling). */
315
316
  branch_on_preview: Schema.optional<typeof Schema.Boolean>;
316
317
  }>>;
317
318
  kv: Schema.optional<Schema.Struct<{
318
- /** Capability-specific engine. Valkey is the first supported KV engine. */
319
- engine: Schema.optional<Schema.Literal<["valkey"]>>;
319
+ engine: Schema.optionalWith<typeof Schema.Never, {
320
+ exact: true;
321
+ }>;
320
322
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
321
323
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
322
324
  }>>;
323
325
  search: Schema.optional<Schema.Struct<{
324
- /** Capability-specific engine. Typesense is the first supported search engine. */
325
- engine: Schema.optional<Schema.Literal<["typesense"]>>;
326
+ engine: Schema.optionalWith<typeof Schema.Never, {
327
+ exact: true;
328
+ }>;
326
329
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
327
330
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
328
- nodes: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
329
331
  }>>;
330
332
  volume: Schema.optional<Schema.Struct<{
331
333
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
332
334
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
333
335
  /**
334
- * ReadWriteMany is required when a volume is shared by multiple sandboxes,
335
- * workers, or replicas. ReadWriteOnce remains valid for single-writer app
336
- * disks.
336
+ * Public sharing intent. The platform maps this to the best backend storage
337
+ * class without exposing implementation details.
337
338
  */
338
- access_mode: Schema.optional<Schema.Literal<["ReadWriteOnce", "ReadWriteMany"]>>;
339
+ sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
339
340
  /**
340
341
  * Optional env-facing path metadata. This does not mount the volume into an
341
342
  * app service by itself; service/task mounts stay explicit bindings.
@@ -367,22 +368,22 @@ export type ManifestCiSection = typeof ManifestCiSection.Type;
367
368
  * `[[services]]` entry with the matching name. Arrays replace, scalars/
368
369
  * structs merge.
369
370
  */
370
- export declare const ManifestServiceOverride: Schema.Struct<{
371
+ export declare const ManifestServiceOverride: Schema.filter<Schema.Struct<{
371
372
  name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
372
373
  type: Schema.optional<Schema.Literal<["web", "worker", "cron", "function"]>>;
373
374
  command: Schema.optional<typeof Schema.String>;
374
375
  port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
375
- internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
376
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
376
+ instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
377
377
  instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
378
378
  cron_schedule: Schema.optional<typeof Schema.String>;
379
379
  regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
380
380
  scale_to_zero: Schema.optional<typeof Schema.Boolean>;
381
381
  idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
382
- min_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
382
+ min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
383
+ max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
383
384
  env: Schema.optional<Schema.Array$<typeof Schema.String>>;
384
385
  resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
385
- }>;
386
+ }>>;
386
387
  export type ManifestServiceOverride = typeof ManifestServiceOverride.Type;
387
388
  export declare const ManifestEnvironmentOverride: Schema.Struct<{
388
389
  /** Shallow-merge over top-level [env]. */
@@ -422,10 +423,10 @@ export declare const ManifestEnvironmentOverride: Schema.Struct<{
422
423
  deploy: Schema.optional<Schema.Struct<{
423
424
  /**
424
425
  * Command run before traffic cutover (DB migrations via expand-and-
425
- * contract). Runs as an ArgoCD PreSync Job (sync-wave "-1"). ADR-066.2.
426
+ * contract). Runs before the new release accepts traffic. ADR-066.2.
426
427
  */
427
428
  release_command: Schema.optional<typeof Schema.String>;
428
- /** HTTP path for K8s readinessProbe. */
429
+ /** HTTP readiness path. */
429
430
  health_check_path: Schema.optional<typeof Schema.String>;
430
431
  /** Timeout in seconds. */
431
432
  health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
@@ -435,22 +436,22 @@ export declare const ManifestEnvironmentOverride: Schema.Struct<{
435
436
  graceful_shutdown: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
436
437
  }>>;
437
438
  /** Sparse service overrides; entries match by `name`. */
438
- services: Schema.optional<Schema.Array$<Schema.Struct<{
439
+ services: Schema.optional<Schema.Array$<Schema.filter<Schema.Struct<{
439
440
  name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
440
441
  type: Schema.optional<Schema.Literal<["web", "worker", "cron", "function"]>>;
441
442
  command: Schema.optional<typeof Schema.String>;
442
443
  port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
443
- internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
444
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
444
+ instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
445
445
  instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
446
446
  cron_schedule: Schema.optional<typeof Schema.String>;
447
447
  regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
448
448
  scale_to_zero: Schema.optional<typeof Schema.Boolean>;
449
449
  idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
450
- min_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
450
+ min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
451
+ max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
451
452
  env: Schema.optional<Schema.Array$<typeof Schema.String>>;
452
453
  resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
453
- }>>>;
454
+ }>>>>;
454
455
  /** Per-env region override. */
455
456
  region: Schema.optional<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>;
456
457
  /** Domain overrides; typically for preview-only hostnames. */
@@ -475,31 +476,7 @@ export type ManifestEnvironmentOverride = typeof ManifestEnvironmentOverride.Typ
475
476
  * as an exhaustive record demanding every key) yet still flexible.
476
477
  */
477
478
  export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
478
- readonly development?: {
479
- readonly domains?: readonly {
480
- readonly service: string;
481
- readonly hostname: string;
482
- readonly redirect_https?: boolean | undefined;
483
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
484
- readonly aliases?: readonly string[] | undefined;
485
- }[] | undefined;
486
- readonly services?: readonly {
487
- readonly name: string;
488
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
489
- readonly port?: number | undefined;
490
- readonly env?: readonly string[] | undefined;
491
- readonly resources?: readonly string[] | undefined;
492
- readonly replicas?: number | undefined;
493
- readonly command?: string | undefined;
494
- readonly internal_port?: number | undefined;
495
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
496
- readonly cron_schedule?: string | undefined;
497
- readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
498
- readonly scale_to_zero?: boolean | undefined;
499
- readonly idle_timeout_seconds?: number | undefined;
500
- readonly min_replicas?: number | undefined;
501
- }[] | undefined;
502
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
479
+ readonly production?: {
503
480
  readonly env?: {
504
481
  readonly [x: string]: {
505
482
  readonly value: string;
@@ -510,11 +487,12 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
510
487
  readonly attr: string;
511
488
  };
512
489
  } | undefined;
490
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
513
491
  readonly build?: {
514
- readonly context?: string | undefined;
515
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
516
492
  readonly dockerfile?: string | undefined;
517
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
493
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
494
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
495
+ readonly context?: string | undefined;
518
496
  readonly docker_context?: string | undefined;
519
497
  readonly build_command?: string | undefined;
520
498
  readonly ignore?: readonly string[] | undefined;
@@ -522,38 +500,37 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
522
500
  readonly reproducible?: boolean | undefined;
523
501
  } | undefined;
524
502
  readonly deploy?: {
525
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
503
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
526
504
  readonly release_command?: string | undefined;
527
505
  readonly health_check_path?: string | undefined;
528
506
  readonly health_check_timeout?: number | undefined;
529
507
  readonly graceful_shutdown?: number | undefined;
530
508
  } | undefined;
531
- };
532
- readonly staging?: {
533
- readonly domains?: readonly {
534
- readonly service: string;
535
- readonly hostname: string;
536
- readonly redirect_https?: boolean | undefined;
537
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
538
- readonly aliases?: readonly string[] | undefined;
539
- }[] | undefined;
540
509
  readonly services?: readonly {
541
- readonly name: string;
542
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
543
510
  readonly port?: number | undefined;
544
511
  readonly env?: readonly string[] | undefined;
512
+ readonly name: string;
545
513
  readonly resources?: readonly string[] | undefined;
546
- readonly replicas?: number | undefined;
514
+ readonly max_instances?: number | undefined;
547
515
  readonly command?: string | undefined;
548
- readonly internal_port?: number | undefined;
549
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
516
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
517
+ readonly instances?: number | undefined;
518
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
550
519
  readonly cron_schedule?: string | undefined;
551
520
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
552
521
  readonly scale_to_zero?: boolean | undefined;
553
522
  readonly idle_timeout_seconds?: number | undefined;
554
- readonly min_replicas?: number | undefined;
523
+ readonly min_instances?: number | undefined;
555
524
  }[] | undefined;
556
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
525
+ readonly domains?: readonly {
526
+ readonly hostname: string;
527
+ readonly service: string;
528
+ readonly redirect_https?: boolean | undefined;
529
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
530
+ readonly aliases?: readonly string[] | undefined;
531
+ }[] | undefined;
532
+ };
533
+ readonly staging?: {
557
534
  readonly env?: {
558
535
  readonly [x: string]: {
559
536
  readonly value: string;
@@ -564,11 +541,12 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
564
541
  readonly attr: string;
565
542
  };
566
543
  } | undefined;
544
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
567
545
  readonly build?: {
568
- readonly context?: string | undefined;
569
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
570
546
  readonly dockerfile?: string | undefined;
571
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
547
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
548
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
549
+ readonly context?: string | undefined;
572
550
  readonly docker_context?: string | undefined;
573
551
  readonly build_command?: string | undefined;
574
552
  readonly ignore?: readonly string[] | undefined;
@@ -576,38 +554,37 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
576
554
  readonly reproducible?: boolean | undefined;
577
555
  } | undefined;
578
556
  readonly deploy?: {
579
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
557
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
580
558
  readonly release_command?: string | undefined;
581
559
  readonly health_check_path?: string | undefined;
582
560
  readonly health_check_timeout?: number | undefined;
583
561
  readonly graceful_shutdown?: number | undefined;
584
562
  } | undefined;
585
- };
586
- readonly production?: {
587
- readonly domains?: readonly {
588
- readonly service: string;
589
- readonly hostname: string;
590
- readonly redirect_https?: boolean | undefined;
591
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
592
- readonly aliases?: readonly string[] | undefined;
593
- }[] | undefined;
594
563
  readonly services?: readonly {
595
- readonly name: string;
596
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
597
564
  readonly port?: number | undefined;
598
565
  readonly env?: readonly string[] | undefined;
566
+ readonly name: string;
599
567
  readonly resources?: readonly string[] | undefined;
600
- readonly replicas?: number | undefined;
568
+ readonly max_instances?: number | undefined;
601
569
  readonly command?: string | undefined;
602
- readonly internal_port?: number | undefined;
603
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
570
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
571
+ readonly instances?: number | undefined;
572
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
604
573
  readonly cron_schedule?: string | undefined;
605
574
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
606
575
  readonly scale_to_zero?: boolean | undefined;
607
576
  readonly idle_timeout_seconds?: number | undefined;
608
- readonly min_replicas?: number | undefined;
577
+ readonly min_instances?: number | undefined;
609
578
  }[] | undefined;
610
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
579
+ readonly domains?: readonly {
580
+ readonly hostname: string;
581
+ readonly service: string;
582
+ readonly redirect_https?: boolean | undefined;
583
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
584
+ readonly aliases?: readonly string[] | undefined;
585
+ }[] | undefined;
586
+ };
587
+ readonly preview?: {
611
588
  readonly env?: {
612
589
  readonly [x: string]: {
613
590
  readonly value: string;
@@ -618,11 +595,12 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
618
595
  readonly attr: string;
619
596
  };
620
597
  } | undefined;
598
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
621
599
  readonly build?: {
622
- readonly context?: string | undefined;
623
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
624
600
  readonly dockerfile?: string | undefined;
625
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
601
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
602
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
603
+ readonly context?: string | undefined;
626
604
  readonly docker_context?: string | undefined;
627
605
  readonly build_command?: string | undefined;
628
606
  readonly ignore?: readonly string[] | undefined;
@@ -630,38 +608,37 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
630
608
  readonly reproducible?: boolean | undefined;
631
609
  } | undefined;
632
610
  readonly deploy?: {
633
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
611
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
634
612
  readonly release_command?: string | undefined;
635
613
  readonly health_check_path?: string | undefined;
636
614
  readonly health_check_timeout?: number | undefined;
637
615
  readonly graceful_shutdown?: number | undefined;
638
616
  } | undefined;
639
- };
640
- readonly preview?: {
641
- readonly domains?: readonly {
642
- readonly service: string;
643
- readonly hostname: string;
644
- readonly redirect_https?: boolean | undefined;
645
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
646
- readonly aliases?: readonly string[] | undefined;
647
- }[] | undefined;
648
617
  readonly services?: readonly {
649
- readonly name: string;
650
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
651
618
  readonly port?: number | undefined;
652
619
  readonly env?: readonly string[] | undefined;
620
+ readonly name: string;
653
621
  readonly resources?: readonly string[] | undefined;
654
- readonly replicas?: number | undefined;
622
+ readonly max_instances?: number | undefined;
655
623
  readonly command?: string | undefined;
656
- readonly internal_port?: number | undefined;
657
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
624
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
625
+ readonly instances?: number | undefined;
626
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
658
627
  readonly cron_schedule?: string | undefined;
659
628
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
660
629
  readonly scale_to_zero?: boolean | undefined;
661
630
  readonly idle_timeout_seconds?: number | undefined;
662
- readonly min_replicas?: number | undefined;
631
+ readonly min_instances?: number | undefined;
663
632
  }[] | undefined;
664
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
633
+ readonly domains?: readonly {
634
+ readonly hostname: string;
635
+ readonly service: string;
636
+ readonly redirect_https?: boolean | undefined;
637
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
638
+ readonly aliases?: readonly string[] | undefined;
639
+ }[] | undefined;
640
+ };
641
+ readonly development?: {
665
642
  readonly env?: {
666
643
  readonly [x: string]: {
667
644
  readonly value: string;
@@ -672,11 +649,12 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
672
649
  readonly attr: string;
673
650
  };
674
651
  } | undefined;
652
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
675
653
  readonly build?: {
676
- readonly context?: string | undefined;
677
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
678
654
  readonly dockerfile?: string | undefined;
679
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
655
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
656
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
657
+ readonly context?: string | undefined;
680
658
  readonly docker_context?: string | undefined;
681
659
  readonly build_command?: string | undefined;
682
660
  readonly ignore?: readonly string[] | undefined;
@@ -684,39 +662,38 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
684
662
  readonly reproducible?: boolean | undefined;
685
663
  } | undefined;
686
664
  readonly deploy?: {
687
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
665
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
688
666
  readonly release_command?: string | undefined;
689
667
  readonly health_check_path?: string | undefined;
690
668
  readonly health_check_timeout?: number | undefined;
691
669
  readonly graceful_shutdown?: number | undefined;
692
670
  } | undefined;
693
- };
694
- }, {
695
- readonly development?: {
696
- readonly domains?: readonly {
697
- readonly service: string;
698
- readonly hostname: string;
699
- readonly redirect_https?: boolean | undefined;
700
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
701
- readonly aliases?: readonly string[] | undefined;
702
- }[] | undefined;
703
671
  readonly services?: readonly {
704
- readonly name: string;
705
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
706
672
  readonly port?: number | undefined;
707
673
  readonly env?: readonly string[] | undefined;
674
+ readonly name: string;
708
675
  readonly resources?: readonly string[] | undefined;
709
- readonly replicas?: number | undefined;
676
+ readonly max_instances?: number | undefined;
710
677
  readonly command?: string | undefined;
711
- readonly internal_port?: number | undefined;
712
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
678
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
679
+ readonly instances?: number | undefined;
680
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
713
681
  readonly cron_schedule?: string | undefined;
714
682
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
715
683
  readonly scale_to_zero?: boolean | undefined;
716
684
  readonly idle_timeout_seconds?: number | undefined;
717
- readonly min_replicas?: number | undefined;
685
+ readonly min_instances?: number | undefined;
718
686
  }[] | undefined;
719
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
687
+ readonly domains?: readonly {
688
+ readonly hostname: string;
689
+ readonly service: string;
690
+ readonly redirect_https?: boolean | undefined;
691
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
692
+ readonly aliases?: readonly string[] | undefined;
693
+ }[] | undefined;
694
+ };
695
+ }, {
696
+ readonly production?: {
720
697
  readonly env?: {
721
698
  readonly [x: string]: {
722
699
  readonly value: string;
@@ -727,11 +704,12 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
727
704
  readonly attr: string;
728
705
  };
729
706
  } | undefined;
707
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
730
708
  readonly build?: {
731
- readonly context?: string | undefined;
732
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
733
709
  readonly dockerfile?: string | undefined;
734
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
710
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
711
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
712
+ readonly context?: string | undefined;
735
713
  readonly docker_context?: string | undefined;
736
714
  readonly build_command?: string | undefined;
737
715
  readonly ignore?: readonly string[] | undefined;
@@ -739,38 +717,37 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
739
717
  readonly reproducible?: boolean | undefined;
740
718
  } | undefined;
741
719
  readonly deploy?: {
742
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
720
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
743
721
  readonly release_command?: string | undefined;
744
722
  readonly health_check_path?: string | undefined;
745
723
  readonly health_check_timeout?: number | undefined;
746
724
  readonly graceful_shutdown?: number | undefined;
747
725
  } | undefined;
748
- };
749
- readonly staging?: {
750
- readonly domains?: readonly {
751
- readonly service: string;
752
- readonly hostname: string;
753
- readonly redirect_https?: boolean | undefined;
754
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
755
- readonly aliases?: readonly string[] | undefined;
756
- }[] | undefined;
757
726
  readonly services?: readonly {
758
727
  readonly name: string;
759
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
760
728
  readonly port?: number | undefined;
761
729
  readonly env?: readonly string[] | undefined;
762
730
  readonly resources?: readonly string[] | undefined;
763
- readonly replicas?: number | undefined;
731
+ readonly max_instances?: number | undefined;
764
732
  readonly command?: string | undefined;
765
- readonly internal_port?: number | undefined;
766
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
733
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
734
+ readonly instances?: number | undefined;
735
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
767
736
  readonly cron_schedule?: string | undefined;
768
737
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
769
738
  readonly scale_to_zero?: boolean | undefined;
770
739
  readonly idle_timeout_seconds?: number | undefined;
771
- readonly min_replicas?: number | undefined;
740
+ readonly min_instances?: number | undefined;
772
741
  }[] | undefined;
773
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
742
+ readonly domains?: readonly {
743
+ readonly hostname: string;
744
+ readonly service: string;
745
+ readonly redirect_https?: boolean | undefined;
746
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
747
+ readonly aliases?: readonly string[] | undefined;
748
+ }[] | undefined;
749
+ };
750
+ readonly staging?: {
774
751
  readonly env?: {
775
752
  readonly [x: string]: {
776
753
  readonly value: string;
@@ -781,11 +758,12 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
781
758
  readonly attr: string;
782
759
  };
783
760
  } | undefined;
761
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
784
762
  readonly build?: {
785
- readonly context?: string | undefined;
786
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
787
763
  readonly dockerfile?: string | undefined;
788
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
764
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
765
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
766
+ readonly context?: string | undefined;
789
767
  readonly docker_context?: string | undefined;
790
768
  readonly build_command?: string | undefined;
791
769
  readonly ignore?: readonly string[] | undefined;
@@ -793,38 +771,37 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
793
771
  readonly reproducible?: boolean | undefined;
794
772
  } | undefined;
795
773
  readonly deploy?: {
796
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
774
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
797
775
  readonly release_command?: string | undefined;
798
776
  readonly health_check_path?: string | undefined;
799
777
  readonly health_check_timeout?: number | undefined;
800
778
  readonly graceful_shutdown?: number | undefined;
801
779
  } | undefined;
802
- };
803
- readonly production?: {
804
- readonly domains?: readonly {
805
- readonly service: string;
806
- readonly hostname: string;
807
- readonly redirect_https?: boolean | undefined;
808
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
809
- readonly aliases?: readonly string[] | undefined;
810
- }[] | undefined;
811
780
  readonly services?: readonly {
812
781
  readonly name: string;
813
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
814
782
  readonly port?: number | undefined;
815
783
  readonly env?: readonly string[] | undefined;
816
784
  readonly resources?: readonly string[] | undefined;
817
- readonly replicas?: number | undefined;
785
+ readonly max_instances?: number | undefined;
818
786
  readonly command?: string | undefined;
819
- readonly internal_port?: number | undefined;
820
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
787
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
788
+ readonly instances?: number | undefined;
789
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
821
790
  readonly cron_schedule?: string | undefined;
822
791
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
823
792
  readonly scale_to_zero?: boolean | undefined;
824
793
  readonly idle_timeout_seconds?: number | undefined;
825
- readonly min_replicas?: number | undefined;
794
+ readonly min_instances?: number | undefined;
826
795
  }[] | undefined;
827
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
796
+ readonly domains?: readonly {
797
+ readonly hostname: string;
798
+ readonly service: string;
799
+ readonly redirect_https?: boolean | undefined;
800
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
801
+ readonly aliases?: readonly string[] | undefined;
802
+ }[] | undefined;
803
+ };
804
+ readonly preview?: {
828
805
  readonly env?: {
829
806
  readonly [x: string]: {
830
807
  readonly value: string;
@@ -835,11 +812,12 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
835
812
  readonly attr: string;
836
813
  };
837
814
  } | undefined;
815
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
838
816
  readonly build?: {
839
- readonly context?: string | undefined;
840
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
841
817
  readonly dockerfile?: string | undefined;
842
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
818
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
819
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
820
+ readonly context?: string | undefined;
843
821
  readonly docker_context?: string | undefined;
844
822
  readonly build_command?: string | undefined;
845
823
  readonly ignore?: readonly string[] | undefined;
@@ -847,38 +825,37 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
847
825
  readonly reproducible?: boolean | undefined;
848
826
  } | undefined;
849
827
  readonly deploy?: {
850
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
828
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
851
829
  readonly release_command?: string | undefined;
852
830
  readonly health_check_path?: string | undefined;
853
831
  readonly health_check_timeout?: number | undefined;
854
832
  readonly graceful_shutdown?: number | undefined;
855
833
  } | undefined;
856
- };
857
- readonly preview?: {
858
- readonly domains?: readonly {
859
- readonly service: string;
860
- readonly hostname: string;
861
- readonly redirect_https?: boolean | undefined;
862
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
863
- readonly aliases?: readonly string[] | undefined;
864
- }[] | undefined;
865
834
  readonly services?: readonly {
866
835
  readonly name: string;
867
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
868
836
  readonly port?: number | undefined;
869
837
  readonly env?: readonly string[] | undefined;
870
838
  readonly resources?: readonly string[] | undefined;
871
- readonly replicas?: number | undefined;
839
+ readonly max_instances?: number | undefined;
872
840
  readonly command?: string | undefined;
873
- readonly internal_port?: number | undefined;
874
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
841
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
842
+ readonly instances?: number | undefined;
843
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
875
844
  readonly cron_schedule?: string | undefined;
876
845
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
877
846
  readonly scale_to_zero?: boolean | undefined;
878
847
  readonly idle_timeout_seconds?: number | undefined;
879
- readonly min_replicas?: number | undefined;
848
+ readonly min_instances?: number | undefined;
880
849
  }[] | undefined;
881
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
850
+ readonly domains?: readonly {
851
+ readonly hostname: string;
852
+ readonly service: string;
853
+ readonly redirect_https?: boolean | undefined;
854
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
855
+ readonly aliases?: readonly string[] | undefined;
856
+ }[] | undefined;
857
+ };
858
+ readonly development?: {
882
859
  readonly env?: {
883
860
  readonly [x: string]: {
884
861
  readonly value: string;
@@ -889,11 +866,12 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
889
866
  readonly attr: string;
890
867
  };
891
868
  } | undefined;
869
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
892
870
  readonly build?: {
893
- readonly context?: string | undefined;
894
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
895
871
  readonly dockerfile?: string | undefined;
896
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
872
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
873
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
874
+ readonly context?: string | undefined;
897
875
  readonly docker_context?: string | undefined;
898
876
  readonly build_command?: string | undefined;
899
877
  readonly ignore?: readonly string[] | undefined;
@@ -901,12 +879,35 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
901
879
  readonly reproducible?: boolean | undefined;
902
880
  } | undefined;
903
881
  readonly deploy?: {
904
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
882
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
905
883
  readonly release_command?: string | undefined;
906
884
  readonly health_check_path?: string | undefined;
907
885
  readonly health_check_timeout?: number | undefined;
908
886
  readonly graceful_shutdown?: number | undefined;
909
887
  } | undefined;
888
+ readonly services?: readonly {
889
+ readonly name: string;
890
+ readonly port?: number | undefined;
891
+ readonly env?: readonly string[] | undefined;
892
+ readonly resources?: readonly string[] | undefined;
893
+ readonly max_instances?: number | undefined;
894
+ readonly command?: string | undefined;
895
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
896
+ readonly instances?: number | undefined;
897
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
898
+ readonly cron_schedule?: string | undefined;
899
+ readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
900
+ readonly scale_to_zero?: boolean | undefined;
901
+ readonly idle_timeout_seconds?: number | undefined;
902
+ readonly min_instances?: number | undefined;
903
+ }[] | undefined;
904
+ readonly domains?: readonly {
905
+ readonly hostname: string;
906
+ readonly service: string;
907
+ readonly redirect_https?: boolean | undefined;
908
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
909
+ readonly aliases?: readonly string[] | undefined;
910
+ }[] | undefined;
910
911
  };
911
912
  }, never>;
912
913
  export type ManifestEnvironmentsMap = typeof ManifestEnvironmentsMap.Type;
@@ -958,10 +959,10 @@ export declare const SylphxManifest: Schema.Struct<{
958
959
  deploy: Schema.optional<Schema.Struct<{
959
960
  /**
960
961
  * Command run before traffic cutover (DB migrations via expand-and-
961
- * contract). Runs as an ArgoCD PreSync Job (sync-wave "-1"). ADR-066.2.
962
+ * contract). Runs before the new release accepts traffic. ADR-066.2.
962
963
  */
963
964
  release_command: Schema.optional<typeof Schema.String>;
964
- /** HTTP path for K8s readinessProbe. */
965
+ /** HTTP readiness path. */
965
966
  health_check_path: Schema.optional<typeof Schema.String>;
966
967
  /** Timeout in seconds. */
967
968
  health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
@@ -970,8 +971,8 @@ export declare const SylphxManifest: Schema.Struct<{
970
971
  /** Grace period before SIGKILL (seconds). */
971
972
  graceful_shutdown: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
972
973
  }>>;
973
- services: Schema.optional<Schema.Array$<Schema.Struct<{
974
- /** Service name — unique within project. Used as K8s Deployment name. */
974
+ services: Schema.optional<Schema.Array$<Schema.filter<Schema.Struct<{
975
+ /** Service name — unique within project. */
975
976
  name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
976
977
  type: Schema.Literal<["web", "worker", "cron", "function"]>;
977
978
  /** Per-service build override. Root [build] remains the default. */
@@ -988,48 +989,50 @@ export declare const SylphxManifest: Schema.Struct<{
988
989
  path: Schema.optional<typeof Schema.String>;
989
990
  command: Schema.optional<typeof Schema.String>;
990
991
  }>>;
991
- /** Container start command. */
992
+ /** Service start command. */
992
993
  command: Schema.optional<typeof Schema.String>;
993
- /** Internal container port; required for `web`. */
994
- port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
995
994
  /**
996
- * Public HTTP port (Gateway API listener). Defaults to 443 for web.
997
- * Most users leave unset.
995
+ * Command run before this service receives traffic. Kept service-scoped for
996
+ * apps that need one migration/release hook tied to a specific image.
998
997
  */
999
- internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1000
- /** Replica count. Ignored for `cron`. */
1001
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1002
- /** Compute size; maps to per-service K8s resources.requests/limits. */
998
+ release_command: Schema.optional<typeof Schema.String>;
999
+ /** Service port; required for `web` when it cannot be detected automatically. */
1000
+ port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1001
+ /** Explicit instance count. Ignored for `cron`. */
1002
+ instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1003
+ /** Compute size; maps to per-service runtime resources. */
1003
1004
  instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
1004
1005
  /** Required when type=cron. Standard 5-field cron expression. */
1005
1006
  cron_schedule: Schema.optional<typeof Schema.String>;
1006
1007
  /** Optional per-service region override. */
1007
1008
  regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
1008
- /**
1009
- * Scale-to-zero (KEDA). `false` (default) = pinned at `min_replicas >= 1`;
1010
- * `true` = the reconciler emits a KEDA ScaledObject and lets KEDA drive
1011
- * the replica count from 0 → N on incoming traffic (docs/design/scale-to-zero.md).
1012
- */
1009
+ /** Scale-to-zero. `false` (default) = pinned at `min_instances >= 1`. */
1013
1010
  scale_to_zero: Schema.optional<typeof Schema.Boolean>;
1014
1011
  /**
1015
- * Seconds of no traffic before KEDA scales the Deployment down to 0.
1016
- * Maps to KEDA `cooldownPeriod`. Only meaningful when `scale_to_zero=true`.
1012
+ * Seconds of no traffic before the platform scales the service down to 0.
1013
+ * Only meaningful when `scale_to_zero=true`.
1017
1014
  * Range: 60s–3600s. Default: 300 (5 min).
1018
1015
  */
1019
1016
  idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1020
1017
  /**
1021
- * Minimum replica count. Default: `0` when `scale_to_zero=true`, else `1`.
1022
- * Setting `min_replicas=1` alongside `scale_to_zero=true` keeps a warm
1023
- * floor while still letting KEDA scale horizontally beyond 1.
1018
+ * Minimum instance count. Default: `0` when `scale_to_zero=true`, else `1`.
1019
+ * Setting `min_instances=1` alongside `scale_to_zero=true` keeps a warm
1020
+ * floor while still allowing horizontal scale-out beyond 1.
1024
1021
  */
1025
- min_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1022
+ min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1023
+ /** Optional upper bound for platform-managed horizontal scale-out. */
1024
+ max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1026
1025
  /** Per-service env var merge — refs entries from top-level [env]. */
1027
1026
  env: Schema.optional<Schema.Array$<typeof Schema.String>>;
1028
- /** Per-service resource bindings (by resource name). */
1027
+ /**
1028
+ * Reserved for declarative service-scoped managed resource bindings.
1029
+ * Current push-webhook support is environment-scoped via top-level [resources.*],
1030
+ * so deploy parsing fails closed if this field is present.
1031
+ */
1029
1032
  resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
1030
1033
  /** Paths whose changes should trigger this service in monorepos. */
1031
1034
  watch_paths: Schema.optional<Schema.Array$<typeof Schema.String>>;
1032
- }>>>;
1035
+ }>>>>;
1033
1036
  database: Schema.optional<Schema.Struct<{
1034
1037
  migrations: Schema.optional<Schema.Struct<{
1035
1038
  engine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
@@ -1060,31 +1063,7 @@ export declare const SylphxManifest: Schema.Struct<{
1060
1063
  aliases: Schema.optional<Schema.Array$<typeof Schema.String>>;
1061
1064
  }>>>;
1062
1065
  environments: Schema.optional<Schema.SchemaClass<{
1063
- readonly development?: {
1064
- readonly domains?: readonly {
1065
- readonly service: string;
1066
- readonly hostname: string;
1067
- readonly redirect_https?: boolean | undefined;
1068
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
1069
- readonly aliases?: readonly string[] | undefined;
1070
- }[] | undefined;
1071
- readonly services?: readonly {
1072
- readonly name: string;
1073
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
1074
- readonly port?: number | undefined;
1075
- readonly env?: readonly string[] | undefined;
1076
- readonly resources?: readonly string[] | undefined;
1077
- readonly replicas?: number | undefined;
1078
- readonly command?: string | undefined;
1079
- readonly internal_port?: number | undefined;
1080
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1081
- readonly cron_schedule?: string | undefined;
1082
- readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1083
- readonly scale_to_zero?: boolean | undefined;
1084
- readonly idle_timeout_seconds?: number | undefined;
1085
- readonly min_replicas?: number | undefined;
1086
- }[] | undefined;
1087
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1066
+ readonly production?: {
1088
1067
  readonly env?: {
1089
1068
  readonly [x: string]: {
1090
1069
  readonly value: string;
@@ -1095,11 +1074,12 @@ export declare const SylphxManifest: Schema.Struct<{
1095
1074
  readonly attr: string;
1096
1075
  };
1097
1076
  } | undefined;
1077
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1098
1078
  readonly build?: {
1099
- readonly context?: string | undefined;
1100
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1101
1079
  readonly dockerfile?: string | undefined;
1102
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1080
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
1081
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1082
+ readonly context?: string | undefined;
1103
1083
  readonly docker_context?: string | undefined;
1104
1084
  readonly build_command?: string | undefined;
1105
1085
  readonly ignore?: readonly string[] | undefined;
@@ -1107,38 +1087,37 @@ export declare const SylphxManifest: Schema.Struct<{
1107
1087
  readonly reproducible?: boolean | undefined;
1108
1088
  } | undefined;
1109
1089
  readonly deploy?: {
1110
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
1090
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
1111
1091
  readonly release_command?: string | undefined;
1112
1092
  readonly health_check_path?: string | undefined;
1113
1093
  readonly health_check_timeout?: number | undefined;
1114
1094
  readonly graceful_shutdown?: number | undefined;
1115
1095
  } | undefined;
1116
- };
1117
- readonly staging?: {
1118
- readonly domains?: readonly {
1119
- readonly service: string;
1120
- readonly hostname: string;
1121
- readonly redirect_https?: boolean | undefined;
1122
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
1123
- readonly aliases?: readonly string[] | undefined;
1124
- }[] | undefined;
1125
1096
  readonly services?: readonly {
1126
- readonly name: string;
1127
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
1128
1097
  readonly port?: number | undefined;
1129
1098
  readonly env?: readonly string[] | undefined;
1099
+ readonly name: string;
1130
1100
  readonly resources?: readonly string[] | undefined;
1131
- readonly replicas?: number | undefined;
1101
+ readonly max_instances?: number | undefined;
1132
1102
  readonly command?: string | undefined;
1133
- readonly internal_port?: number | undefined;
1134
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1103
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
1104
+ readonly instances?: number | undefined;
1105
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
1135
1106
  readonly cron_schedule?: string | undefined;
1136
1107
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1137
1108
  readonly scale_to_zero?: boolean | undefined;
1138
1109
  readonly idle_timeout_seconds?: number | undefined;
1139
- readonly min_replicas?: number | undefined;
1110
+ readonly min_instances?: number | undefined;
1140
1111
  }[] | undefined;
1141
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1112
+ readonly domains?: readonly {
1113
+ readonly hostname: string;
1114
+ readonly service: string;
1115
+ readonly redirect_https?: boolean | undefined;
1116
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
1117
+ readonly aliases?: readonly string[] | undefined;
1118
+ }[] | undefined;
1119
+ };
1120
+ readonly staging?: {
1142
1121
  readonly env?: {
1143
1122
  readonly [x: string]: {
1144
1123
  readonly value: string;
@@ -1149,11 +1128,12 @@ export declare const SylphxManifest: Schema.Struct<{
1149
1128
  readonly attr: string;
1150
1129
  };
1151
1130
  } | undefined;
1131
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1152
1132
  readonly build?: {
1153
- readonly context?: string | undefined;
1154
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1155
1133
  readonly dockerfile?: string | undefined;
1156
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1134
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
1135
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1136
+ readonly context?: string | undefined;
1157
1137
  readonly docker_context?: string | undefined;
1158
1138
  readonly build_command?: string | undefined;
1159
1139
  readonly ignore?: readonly string[] | undefined;
@@ -1161,38 +1141,37 @@ export declare const SylphxManifest: Schema.Struct<{
1161
1141
  readonly reproducible?: boolean | undefined;
1162
1142
  } | undefined;
1163
1143
  readonly deploy?: {
1164
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
1144
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
1165
1145
  readonly release_command?: string | undefined;
1166
1146
  readonly health_check_path?: string | undefined;
1167
1147
  readonly health_check_timeout?: number | undefined;
1168
1148
  readonly graceful_shutdown?: number | undefined;
1169
1149
  } | undefined;
1170
- };
1171
- readonly production?: {
1172
- readonly domains?: readonly {
1173
- readonly service: string;
1174
- readonly hostname: string;
1175
- readonly redirect_https?: boolean | undefined;
1176
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
1177
- readonly aliases?: readonly string[] | undefined;
1178
- }[] | undefined;
1179
1150
  readonly services?: readonly {
1180
- readonly name: string;
1181
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
1182
1151
  readonly port?: number | undefined;
1183
1152
  readonly env?: readonly string[] | undefined;
1153
+ readonly name: string;
1184
1154
  readonly resources?: readonly string[] | undefined;
1185
- readonly replicas?: number | undefined;
1155
+ readonly max_instances?: number | undefined;
1186
1156
  readonly command?: string | undefined;
1187
- readonly internal_port?: number | undefined;
1188
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1157
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
1158
+ readonly instances?: number | undefined;
1159
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
1189
1160
  readonly cron_schedule?: string | undefined;
1190
1161
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1191
1162
  readonly scale_to_zero?: boolean | undefined;
1192
1163
  readonly idle_timeout_seconds?: number | undefined;
1193
- readonly min_replicas?: number | undefined;
1164
+ readonly min_instances?: number | undefined;
1194
1165
  }[] | undefined;
1195
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1166
+ readonly domains?: readonly {
1167
+ readonly hostname: string;
1168
+ readonly service: string;
1169
+ readonly redirect_https?: boolean | undefined;
1170
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
1171
+ readonly aliases?: readonly string[] | undefined;
1172
+ }[] | undefined;
1173
+ };
1174
+ readonly preview?: {
1196
1175
  readonly env?: {
1197
1176
  readonly [x: string]: {
1198
1177
  readonly value: string;
@@ -1203,11 +1182,12 @@ export declare const SylphxManifest: Schema.Struct<{
1203
1182
  readonly attr: string;
1204
1183
  };
1205
1184
  } | undefined;
1185
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1206
1186
  readonly build?: {
1207
- readonly context?: string | undefined;
1208
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1209
1187
  readonly dockerfile?: string | undefined;
1210
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1188
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
1189
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1190
+ readonly context?: string | undefined;
1211
1191
  readonly docker_context?: string | undefined;
1212
1192
  readonly build_command?: string | undefined;
1213
1193
  readonly ignore?: readonly string[] | undefined;
@@ -1215,38 +1195,37 @@ export declare const SylphxManifest: Schema.Struct<{
1215
1195
  readonly reproducible?: boolean | undefined;
1216
1196
  } | undefined;
1217
1197
  readonly deploy?: {
1218
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
1198
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
1219
1199
  readonly release_command?: string | undefined;
1220
1200
  readonly health_check_path?: string | undefined;
1221
1201
  readonly health_check_timeout?: number | undefined;
1222
1202
  readonly graceful_shutdown?: number | undefined;
1223
1203
  } | undefined;
1224
- };
1225
- readonly preview?: {
1226
- readonly domains?: readonly {
1227
- readonly service: string;
1228
- readonly hostname: string;
1229
- readonly redirect_https?: boolean | undefined;
1230
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
1231
- readonly aliases?: readonly string[] | undefined;
1232
- }[] | undefined;
1233
1204
  readonly services?: readonly {
1234
- readonly name: string;
1235
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
1236
1205
  readonly port?: number | undefined;
1237
1206
  readonly env?: readonly string[] | undefined;
1207
+ readonly name: string;
1238
1208
  readonly resources?: readonly string[] | undefined;
1239
- readonly replicas?: number | undefined;
1209
+ readonly max_instances?: number | undefined;
1240
1210
  readonly command?: string | undefined;
1241
- readonly internal_port?: number | undefined;
1242
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1211
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
1212
+ readonly instances?: number | undefined;
1213
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
1243
1214
  readonly cron_schedule?: string | undefined;
1244
1215
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1245
1216
  readonly scale_to_zero?: boolean | undefined;
1246
1217
  readonly idle_timeout_seconds?: number | undefined;
1247
- readonly min_replicas?: number | undefined;
1218
+ readonly min_instances?: number | undefined;
1248
1219
  }[] | undefined;
1249
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1220
+ readonly domains?: readonly {
1221
+ readonly hostname: string;
1222
+ readonly service: string;
1223
+ readonly redirect_https?: boolean | undefined;
1224
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
1225
+ readonly aliases?: readonly string[] | undefined;
1226
+ }[] | undefined;
1227
+ };
1228
+ readonly development?: {
1250
1229
  readonly env?: {
1251
1230
  readonly [x: string]: {
1252
1231
  readonly value: string;
@@ -1257,11 +1236,12 @@ export declare const SylphxManifest: Schema.Struct<{
1257
1236
  readonly attr: string;
1258
1237
  };
1259
1238
  } | undefined;
1239
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1260
1240
  readonly build?: {
1261
- readonly context?: string | undefined;
1262
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1263
1241
  readonly dockerfile?: string | undefined;
1264
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1242
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
1243
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1244
+ readonly context?: string | undefined;
1265
1245
  readonly docker_context?: string | undefined;
1266
1246
  readonly build_command?: string | undefined;
1267
1247
  readonly ignore?: readonly string[] | undefined;
@@ -1269,39 +1249,38 @@ export declare const SylphxManifest: Schema.Struct<{
1269
1249
  readonly reproducible?: boolean | undefined;
1270
1250
  } | undefined;
1271
1251
  readonly deploy?: {
1272
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
1252
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
1273
1253
  readonly release_command?: string | undefined;
1274
1254
  readonly health_check_path?: string | undefined;
1275
1255
  readonly health_check_timeout?: number | undefined;
1276
1256
  readonly graceful_shutdown?: number | undefined;
1277
1257
  } | undefined;
1278
- };
1279
- }, {
1280
- readonly development?: {
1281
- readonly domains?: readonly {
1282
- readonly service: string;
1283
- readonly hostname: string;
1284
- readonly redirect_https?: boolean | undefined;
1285
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
1286
- readonly aliases?: readonly string[] | undefined;
1287
- }[] | undefined;
1288
1258
  readonly services?: readonly {
1289
- readonly name: string;
1290
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
1291
1259
  readonly port?: number | undefined;
1292
1260
  readonly env?: readonly string[] | undefined;
1261
+ readonly name: string;
1293
1262
  readonly resources?: readonly string[] | undefined;
1294
- readonly replicas?: number | undefined;
1263
+ readonly max_instances?: number | undefined;
1295
1264
  readonly command?: string | undefined;
1296
- readonly internal_port?: number | undefined;
1297
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1265
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
1266
+ readonly instances?: number | undefined;
1267
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
1298
1268
  readonly cron_schedule?: string | undefined;
1299
1269
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1300
1270
  readonly scale_to_zero?: boolean | undefined;
1301
1271
  readonly idle_timeout_seconds?: number | undefined;
1302
- readonly min_replicas?: number | undefined;
1272
+ readonly min_instances?: number | undefined;
1303
1273
  }[] | undefined;
1304
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1274
+ readonly domains?: readonly {
1275
+ readonly hostname: string;
1276
+ readonly service: string;
1277
+ readonly redirect_https?: boolean | undefined;
1278
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
1279
+ readonly aliases?: readonly string[] | undefined;
1280
+ }[] | undefined;
1281
+ };
1282
+ }, {
1283
+ readonly production?: {
1305
1284
  readonly env?: {
1306
1285
  readonly [x: string]: {
1307
1286
  readonly value: string;
@@ -1312,11 +1291,12 @@ export declare const SylphxManifest: Schema.Struct<{
1312
1291
  readonly attr: string;
1313
1292
  };
1314
1293
  } | undefined;
1294
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1315
1295
  readonly build?: {
1316
- readonly context?: string | undefined;
1317
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1318
1296
  readonly dockerfile?: string | undefined;
1319
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1297
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
1298
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1299
+ readonly context?: string | undefined;
1320
1300
  readonly docker_context?: string | undefined;
1321
1301
  readonly build_command?: string | undefined;
1322
1302
  readonly ignore?: readonly string[] | undefined;
@@ -1324,38 +1304,37 @@ export declare const SylphxManifest: Schema.Struct<{
1324
1304
  readonly reproducible?: boolean | undefined;
1325
1305
  } | undefined;
1326
1306
  readonly deploy?: {
1327
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
1307
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
1328
1308
  readonly release_command?: string | undefined;
1329
1309
  readonly health_check_path?: string | undefined;
1330
1310
  readonly health_check_timeout?: number | undefined;
1331
1311
  readonly graceful_shutdown?: number | undefined;
1332
1312
  } | undefined;
1333
- };
1334
- readonly staging?: {
1335
- readonly domains?: readonly {
1336
- readonly service: string;
1337
- readonly hostname: string;
1338
- readonly redirect_https?: boolean | undefined;
1339
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
1340
- readonly aliases?: readonly string[] | undefined;
1341
- }[] | undefined;
1342
1313
  readonly services?: readonly {
1343
1314
  readonly name: string;
1344
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
1345
1315
  readonly port?: number | undefined;
1346
1316
  readonly env?: readonly string[] | undefined;
1347
1317
  readonly resources?: readonly string[] | undefined;
1348
- readonly replicas?: number | undefined;
1318
+ readonly max_instances?: number | undefined;
1349
1319
  readonly command?: string | undefined;
1350
- readonly internal_port?: number | undefined;
1351
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1320
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
1321
+ readonly instances?: number | undefined;
1322
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
1352
1323
  readonly cron_schedule?: string | undefined;
1353
1324
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1354
1325
  readonly scale_to_zero?: boolean | undefined;
1355
1326
  readonly idle_timeout_seconds?: number | undefined;
1356
- readonly min_replicas?: number | undefined;
1327
+ readonly min_instances?: number | undefined;
1357
1328
  }[] | undefined;
1358
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1329
+ readonly domains?: readonly {
1330
+ readonly hostname: string;
1331
+ readonly service: string;
1332
+ readonly redirect_https?: boolean | undefined;
1333
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
1334
+ readonly aliases?: readonly string[] | undefined;
1335
+ }[] | undefined;
1336
+ };
1337
+ readonly staging?: {
1359
1338
  readonly env?: {
1360
1339
  readonly [x: string]: {
1361
1340
  readonly value: string;
@@ -1366,11 +1345,12 @@ export declare const SylphxManifest: Schema.Struct<{
1366
1345
  readonly attr: string;
1367
1346
  };
1368
1347
  } | undefined;
1348
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1369
1349
  readonly build?: {
1370
- readonly context?: string | undefined;
1371
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1372
1350
  readonly dockerfile?: string | undefined;
1373
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1351
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
1352
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1353
+ readonly context?: string | undefined;
1374
1354
  readonly docker_context?: string | undefined;
1375
1355
  readonly build_command?: string | undefined;
1376
1356
  readonly ignore?: readonly string[] | undefined;
@@ -1378,38 +1358,37 @@ export declare const SylphxManifest: Schema.Struct<{
1378
1358
  readonly reproducible?: boolean | undefined;
1379
1359
  } | undefined;
1380
1360
  readonly deploy?: {
1381
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
1361
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
1382
1362
  readonly release_command?: string | undefined;
1383
1363
  readonly health_check_path?: string | undefined;
1384
1364
  readonly health_check_timeout?: number | undefined;
1385
1365
  readonly graceful_shutdown?: number | undefined;
1386
1366
  } | undefined;
1387
- };
1388
- readonly production?: {
1389
- readonly domains?: readonly {
1390
- readonly service: string;
1391
- readonly hostname: string;
1392
- readonly redirect_https?: boolean | undefined;
1393
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
1394
- readonly aliases?: readonly string[] | undefined;
1395
- }[] | undefined;
1396
1367
  readonly services?: readonly {
1397
1368
  readonly name: string;
1398
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
1399
1369
  readonly port?: number | undefined;
1400
1370
  readonly env?: readonly string[] | undefined;
1401
1371
  readonly resources?: readonly string[] | undefined;
1402
- readonly replicas?: number | undefined;
1372
+ readonly max_instances?: number | undefined;
1403
1373
  readonly command?: string | undefined;
1404
- readonly internal_port?: number | undefined;
1405
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1374
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
1375
+ readonly instances?: number | undefined;
1376
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
1406
1377
  readonly cron_schedule?: string | undefined;
1407
1378
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1408
1379
  readonly scale_to_zero?: boolean | undefined;
1409
1380
  readonly idle_timeout_seconds?: number | undefined;
1410
- readonly min_replicas?: number | undefined;
1381
+ readonly min_instances?: number | undefined;
1411
1382
  }[] | undefined;
1412
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1383
+ readonly domains?: readonly {
1384
+ readonly hostname: string;
1385
+ readonly service: string;
1386
+ readonly redirect_https?: boolean | undefined;
1387
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
1388
+ readonly aliases?: readonly string[] | undefined;
1389
+ }[] | undefined;
1390
+ };
1391
+ readonly preview?: {
1413
1392
  readonly env?: {
1414
1393
  readonly [x: string]: {
1415
1394
  readonly value: string;
@@ -1420,11 +1399,12 @@ export declare const SylphxManifest: Schema.Struct<{
1420
1399
  readonly attr: string;
1421
1400
  };
1422
1401
  } | undefined;
1402
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1423
1403
  readonly build?: {
1424
- readonly context?: string | undefined;
1425
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1426
1404
  readonly dockerfile?: string | undefined;
1427
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1405
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
1406
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1407
+ readonly context?: string | undefined;
1428
1408
  readonly docker_context?: string | undefined;
1429
1409
  readonly build_command?: string | undefined;
1430
1410
  readonly ignore?: readonly string[] | undefined;
@@ -1432,38 +1412,37 @@ export declare const SylphxManifest: Schema.Struct<{
1432
1412
  readonly reproducible?: boolean | undefined;
1433
1413
  } | undefined;
1434
1414
  readonly deploy?: {
1435
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
1415
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
1436
1416
  readonly release_command?: string | undefined;
1437
1417
  readonly health_check_path?: string | undefined;
1438
1418
  readonly health_check_timeout?: number | undefined;
1439
1419
  readonly graceful_shutdown?: number | undefined;
1440
1420
  } | undefined;
1441
- };
1442
- readonly preview?: {
1443
- readonly domains?: readonly {
1444
- readonly service: string;
1445
- readonly hostname: string;
1446
- readonly redirect_https?: boolean | undefined;
1447
- readonly www_redirect?: "none" | "apex" | "www" | undefined;
1448
- readonly aliases?: readonly string[] | undefined;
1449
- }[] | undefined;
1450
1421
  readonly services?: readonly {
1451
1422
  readonly name: string;
1452
- readonly type?: "function" | "cron" | "web" | "worker" | undefined;
1453
1423
  readonly port?: number | undefined;
1454
1424
  readonly env?: readonly string[] | undefined;
1455
1425
  readonly resources?: readonly string[] | undefined;
1456
- readonly replicas?: number | undefined;
1426
+ readonly max_instances?: number | undefined;
1457
1427
  readonly command?: string | undefined;
1458
- readonly internal_port?: number | undefined;
1459
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1428
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
1429
+ readonly instances?: number | undefined;
1430
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
1460
1431
  readonly cron_schedule?: string | undefined;
1461
1432
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1462
1433
  readonly scale_to_zero?: boolean | undefined;
1463
1434
  readonly idle_timeout_seconds?: number | undefined;
1464
- readonly min_replicas?: number | undefined;
1435
+ readonly min_instances?: number | undefined;
1465
1436
  }[] | undefined;
1466
- readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1437
+ readonly domains?: readonly {
1438
+ readonly hostname: string;
1439
+ readonly service: string;
1440
+ readonly redirect_https?: boolean | undefined;
1441
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
1442
+ readonly aliases?: readonly string[] | undefined;
1443
+ }[] | undefined;
1444
+ };
1445
+ readonly development?: {
1467
1446
  readonly env?: {
1468
1447
  readonly [x: string]: {
1469
1448
  readonly value: string;
@@ -1474,11 +1453,12 @@ export declare const SylphxManifest: Schema.Struct<{
1474
1453
  readonly attr: string;
1475
1454
  };
1476
1455
  } | undefined;
1456
+ readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1477
1457
  readonly build?: {
1478
- readonly context?: string | undefined;
1479
- readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1480
1458
  readonly dockerfile?: string | undefined;
1481
- readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1459
+ readonly buildpack?: "auto" | "ruby" | "node" | "python" | "static" | "dockerfile" | undefined;
1460
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1461
+ readonly context?: string | undefined;
1482
1462
  readonly docker_context?: string | undefined;
1483
1463
  readonly build_command?: string | undefined;
1484
1464
  readonly ignore?: readonly string[] | undefined;
@@ -1486,49 +1466,72 @@ export declare const SylphxManifest: Schema.Struct<{
1486
1466
  readonly reproducible?: boolean | undefined;
1487
1467
  } | undefined;
1488
1468
  readonly deploy?: {
1489
- readonly strategy?: "immediate" | "rolling" | "blue-green" | undefined;
1469
+ readonly strategy?: "rolling" | "blue-green" | "immediate" | undefined;
1490
1470
  readonly release_command?: string | undefined;
1491
1471
  readonly health_check_path?: string | undefined;
1492
1472
  readonly health_check_timeout?: number | undefined;
1493
1473
  readonly graceful_shutdown?: number | undefined;
1494
1474
  } | undefined;
1475
+ readonly services?: readonly {
1476
+ readonly name: string;
1477
+ readonly port?: number | undefined;
1478
+ readonly env?: readonly string[] | undefined;
1479
+ readonly resources?: readonly string[] | undefined;
1480
+ readonly max_instances?: number | undefined;
1481
+ readonly command?: string | undefined;
1482
+ readonly type?: "function" | "web" | "worker" | "cron" | undefined;
1483
+ readonly instances?: number | undefined;
1484
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "small" | "xlarge" | undefined;
1485
+ readonly cron_schedule?: string | undefined;
1486
+ readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1487
+ readonly scale_to_zero?: boolean | undefined;
1488
+ readonly idle_timeout_seconds?: number | undefined;
1489
+ readonly min_instances?: number | undefined;
1490
+ }[] | undefined;
1491
+ readonly domains?: readonly {
1492
+ readonly hostname: string;
1493
+ readonly service: string;
1494
+ readonly redirect_https?: boolean | undefined;
1495
+ readonly www_redirect?: "apex" | "www" | "none" | undefined;
1496
+ readonly aliases?: readonly string[] | undefined;
1497
+ }[] | undefined;
1495
1498
  };
1496
1499
  }, never>>;
1497
1500
  resources: Schema.optional<Schema.Struct<{
1498
1501
  database: Schema.optional<Schema.Struct<{
1499
1502
  /** Capability-specific engine. PostgreSQL is the first supported database engine. */
1500
1503
  engine: Schema.optional<Schema.Literal<["postgres"]>>;
1501
- /** CNPG tier; IMMUTABLE after creation. */
1504
+ /** Product tier; IMMUTABLE after creation. */
1502
1505
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
1503
1506
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1504
1507
  version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
1505
- /** Enable CNPG read-replica(s). */
1506
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1508
+ /** Optional managed read replicas. */
1509
+ read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1507
1510
  /** Branch-per-preview (P0 gap #4 sibling). */
1508
1511
  branch_on_preview: Schema.optional<typeof Schema.Boolean>;
1509
1512
  }>>;
1510
1513
  kv: Schema.optional<Schema.Struct<{
1511
- /** Capability-specific engine. Valkey is the first supported KV engine. */
1512
- engine: Schema.optional<Schema.Literal<["valkey"]>>;
1514
+ engine: Schema.optionalWith<typeof Schema.Never, {
1515
+ exact: true;
1516
+ }>;
1513
1517
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
1514
1518
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1515
1519
  }>>;
1516
1520
  search: Schema.optional<Schema.Struct<{
1517
- /** Capability-specific engine. Typesense is the first supported search engine. */
1518
- engine: Schema.optional<Schema.Literal<["typesense"]>>;
1521
+ engine: Schema.optionalWith<typeof Schema.Never, {
1522
+ exact: true;
1523
+ }>;
1519
1524
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
1520
1525
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1521
- nodes: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1522
1526
  }>>;
1523
1527
  volume: Schema.optional<Schema.Struct<{
1524
1528
  tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
1525
1529
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1526
1530
  /**
1527
- * ReadWriteMany is required when a volume is shared by multiple sandboxes,
1528
- * workers, or replicas. ReadWriteOnce remains valid for single-writer app
1529
- * disks.
1531
+ * Public sharing intent. The platform maps this to the best backend storage
1532
+ * class without exposing implementation details.
1530
1533
  */
1531
- access_mode: Schema.optional<Schema.Literal<["ReadWriteOnce", "ReadWriteMany"]>>;
1534
+ sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
1532
1535
  /**
1533
1536
  * Optional env-facing path metadata. This does not mount the volume into an
1534
1537
  * app service by itself; service/task mounts stay explicit bindings.
@@ -1562,13 +1565,13 @@ export type SylphxManifest = typeof SylphxManifest.Type;
1562
1565
  * the schema above.
1563
1566
  */
1564
1567
  export interface ResolvedScaleToZero {
1565
- /** Whether the service opts into KEDA-managed scale-to-zero. */
1568
+ /** Whether the service opts into platform-managed scale-to-zero. */
1566
1569
  scaleToZero: boolean;
1567
- /** KEDA `cooldownPeriod` (seconds). Meaningful only when scaleToZero=true. */
1570
+ /** Idle cooldown in seconds. Meaningful only when scaleToZero=true. */
1568
1571
  idleTimeoutSeconds: number;
1569
- /** KEDA `minReplicaCount`. 0 iff `scaleToZero=true` and caller didn't pin a warm floor. */
1572
+ /** Minimum warm instances. 0 iff `scaleToZero=true` and caller didn't pin a warm floor. */
1570
1573
  minReplicas: number;
1571
- /** KEDA `maxReplicaCount`. Upper bound for horizontal scaling. */
1574
+ /** Upper bound for horizontal scaling. */
1572
1575
  maxReplicas: number;
1573
1576
  }
1574
1577
  /**
@@ -1579,11 +1582,11 @@ export interface ResolvedScaleToZero {
1579
1582
  export declare const SCALE_TO_ZERO_DEFAULTS: {
1580
1583
  /** Idle timeout in seconds when caller didn't provide one. */
1581
1584
  readonly idleTimeoutSeconds: 300;
1582
- /** Min replicas when the service opted into scale-to-zero. */
1585
+ /** Min instances when the service opted into scale-to-zero. */
1583
1586
  readonly minReplicasScaleToZero: 0;
1584
- /** Min replicas when the service did NOT opt in (pinned warm). */
1587
+ /** Min instances when the service did NOT opt in (pinned warm). */
1585
1588
  readonly minReplicasWarm: 1;
1586
- /** Max replicas fallback when neither manifest nor compute profile specify. */
1589
+ /** Max instances fallback when neither manifest nor compute profile specify. */
1587
1590
  readonly maxReplicasDefault: 10;
1588
1591
  };
1589
1592
  /**
@@ -1595,7 +1598,7 @@ export declare const SCALE_TO_ZERO_DEFAULTS: {
1595
1598
  * Pass `null`/`undefined` for "no scale-to-zero".
1596
1599
  * @param explicitMax - Optional per-tier ceiling (e.g. resolved from
1597
1600
  * compute profile). Takes precedence over the static
1598
- * 10-replica fallback but not over an input.maxReplicas.
1601
+ * 10-instance fallback but not over an input.maxReplicas.
1599
1602
  */
1600
1603
  export declare function resolveScaleToZeroDefaults(input: {
1601
1604
  scaleToZero?: boolean;