@sylphx/contract 0.5.0 → 0.6.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 (142) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/endpoint.d.ts +3 -1
  3. package/dist/endpoint.d.ts.map +1 -1
  4. package/dist/endpoints/admin-audit.d.ts +2 -2
  5. package/dist/endpoints/admin-audit.js +2 -2
  6. package/dist/endpoints/admin-bootstrap.js +3 -3
  7. package/dist/endpoints/admin-branch-databases.d.ts +1 -1
  8. package/dist/endpoints/admin-branch-databases.js +2 -2
  9. package/dist/endpoints/admin-envs-spec.d.ts +27 -0
  10. package/dist/endpoints/admin-envs-spec.d.ts.map +1 -0
  11. package/dist/endpoints/admin-envs-spec.js +25 -0
  12. package/dist/endpoints/admin-projects.d.ts +1 -1
  13. package/dist/endpoints/admin-rate-limits.d.ts +1 -1
  14. package/dist/endpoints/admin-rate-limits.js +3 -3
  15. package/dist/endpoints/admin-secrets.d.ts +3 -3
  16. package/dist/endpoints/admin-secrets.js +1 -1
  17. package/dist/endpoints/admin-services.d.ts +3 -3
  18. package/dist/endpoints/admin-services.d.ts.map +1 -1
  19. package/dist/endpoints/admin-services.js +4 -5
  20. package/dist/endpoints/branch-databases.d.ts +13 -7
  21. package/dist/endpoints/branch-databases.d.ts.map +1 -1
  22. package/dist/endpoints/branch-databases.js +3 -3
  23. package/dist/endpoints/databases.d.ts +100 -164
  24. package/dist/endpoints/databases.d.ts.map +1 -1
  25. package/dist/endpoints/databases.js +8 -35
  26. package/dist/endpoints/deployments.d.ts +1 -3
  27. package/dist/endpoints/deployments.d.ts.map +1 -1
  28. package/dist/endpoints/deployments.js +1 -1
  29. package/dist/endpoints/environments.d.ts +11 -42
  30. package/dist/endpoints/environments.d.ts.map +1 -1
  31. package/dist/endpoints/image-opt.d.ts +5 -13
  32. package/dist/endpoints/image-opt.d.ts.map +1 -1
  33. package/dist/endpoints/image-opt.js +6 -18
  34. package/dist/endpoints/kv-admin.d.ts +1 -2
  35. package/dist/endpoints/kv-admin.d.ts.map +1 -1
  36. package/dist/endpoints/kv-admin.js +1 -1
  37. package/dist/endpoints/kv.d.ts +19 -13
  38. package/dist/endpoints/kv.d.ts.map +1 -1
  39. package/dist/endpoints/kv.js +9 -9
  40. package/dist/endpoints/notifications.d.ts +7 -0
  41. package/dist/endpoints/notifications.d.ts.map +1 -1
  42. package/dist/endpoints/organizations.d.ts +8 -6
  43. package/dist/endpoints/organizations.d.ts.map +1 -1
  44. package/dist/endpoints/project-manifest.d.ts +196 -84
  45. package/dist/endpoints/project-manifest.d.ts.map +1 -1
  46. package/dist/endpoints/projects.d.ts +0 -8
  47. package/dist/endpoints/projects.d.ts.map +1 -1
  48. package/dist/endpoints/realtime-admin.d.ts +0 -1
  49. package/dist/endpoints/realtime-admin.d.ts.map +1 -1
  50. package/dist/endpoints/realtime-admin.js +1 -1
  51. package/dist/endpoints/regions.d.ts +2 -4
  52. package/dist/endpoints/regions.d.ts.map +1 -1
  53. package/dist/endpoints/regions.js +2 -2
  54. package/dist/endpoints/storage.d.ts +18 -0
  55. package/dist/endpoints/storage.d.ts.map +1 -1
  56. package/dist/endpoints/storage.js +11 -1
  57. package/dist/endpoints/tasks.d.ts +2 -6
  58. package/dist/endpoints/tasks.d.ts.map +1 -1
  59. package/dist/hono-app.d.ts +2 -2
  60. package/dist/hono-app.js +2 -2
  61. package/dist/index.d.ts +403 -350
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +4 -0
  64. package/dist/schemas/_primitives.d.ts +14 -0
  65. package/dist/schemas/_primitives.d.ts.map +1 -1
  66. package/dist/schemas/_primitives.js +16 -0
  67. package/dist/schemas/admin-audit.d.ts +4 -4
  68. package/dist/schemas/admin-audit.js +3 -3
  69. package/dist/schemas/admin-bootstrap.d.ts +1 -1
  70. package/dist/schemas/admin-bootstrap.js +1 -1
  71. package/dist/schemas/admin-builds.d.ts +1 -1
  72. package/dist/schemas/admin-builds.js +1 -1
  73. package/dist/schemas/admin-envs-spec.d.ts +49 -0
  74. package/dist/schemas/admin-envs-spec.d.ts.map +1 -0
  75. package/dist/schemas/admin-envs-spec.js +58 -0
  76. package/dist/schemas/admin-projects.d.ts +2 -2
  77. package/dist/schemas/admin-projects.js +1 -1
  78. package/dist/schemas/admin-rate-limits.d.ts +2 -2
  79. package/dist/schemas/admin-rate-limits.js +2 -2
  80. package/dist/schemas/admin-secrets.d.ts +14 -14
  81. package/dist/schemas/admin-secrets.d.ts.map +1 -1
  82. package/dist/schemas/admin-secrets.js +10 -10
  83. package/dist/schemas/admin-services.d.ts +18 -22
  84. package/dist/schemas/admin-services.d.ts.map +1 -1
  85. package/dist/schemas/admin-services.js +15 -19
  86. package/dist/schemas/auth.d.ts +1 -0
  87. package/dist/schemas/auth.d.ts.map +1 -1
  88. package/dist/schemas/auth.js +1 -0
  89. package/dist/schemas/branch-database.d.ts +25 -18
  90. package/dist/schemas/branch-database.d.ts.map +1 -1
  91. package/dist/schemas/branch-database.js +15 -14
  92. package/dist/schemas/database.d.ts +13 -19
  93. package/dist/schemas/database.d.ts.map +1 -1
  94. package/dist/schemas/database.js +7 -19
  95. package/dist/schemas/deployment.d.ts +5 -7
  96. package/dist/schemas/deployment.d.ts.map +1 -1
  97. package/dist/schemas/deployment.js +6 -6
  98. package/dist/schemas/environment.d.ts +17 -31
  99. package/dist/schemas/environment.d.ts.map +1 -1
  100. package/dist/schemas/environment.js +11 -16
  101. package/dist/schemas/ids.d.ts +4 -0
  102. package/dist/schemas/ids.d.ts.map +1 -1
  103. package/dist/schemas/ids.js +2 -0
  104. package/dist/schemas/image-opt.d.ts +10 -11
  105. package/dist/schemas/image-opt.d.ts.map +1 -1
  106. package/dist/schemas/image-opt.js +11 -12
  107. package/dist/schemas/kv-admin.d.ts +1 -2
  108. package/dist/schemas/kv-admin.d.ts.map +1 -1
  109. package/dist/schemas/kv-admin.js +1 -2
  110. package/dist/schemas/kv.d.ts +12 -4
  111. package/dist/schemas/kv.d.ts.map +1 -1
  112. package/dist/schemas/kv.js +17 -5
  113. package/dist/schemas/notifications.d.ts +11 -0
  114. package/dist/schemas/notifications.d.ts.map +1 -1
  115. package/dist/schemas/notifications.js +11 -0
  116. package/dist/schemas/organization.d.ts +8 -6
  117. package/dist/schemas/organization.d.ts.map +1 -1
  118. package/dist/schemas/organization.js +11 -6
  119. package/dist/schemas/project-manifest.d.ts +384 -174
  120. package/dist/schemas/project-manifest.d.ts.map +1 -1
  121. package/dist/schemas/project-manifest.js +127 -50
  122. package/dist/schemas/project.d.ts +0 -6
  123. package/dist/schemas/project.d.ts.map +1 -1
  124. package/dist/schemas/project.js +0 -2
  125. package/dist/schemas/realtime-admin.d.ts +0 -1
  126. package/dist/schemas/realtime-admin.d.ts.map +1 -1
  127. package/dist/schemas/realtime-admin.js +0 -1
  128. package/dist/schemas/realtime.d.ts +2 -2
  129. package/dist/schemas/realtime.js +2 -2
  130. package/dist/schemas/region.d.ts +3 -21
  131. package/dist/schemas/region.d.ts.map +1 -1
  132. package/dist/schemas/region.js +2 -11
  133. package/dist/schemas/resources.d.ts +213 -164
  134. package/dist/schemas/resources.d.ts.map +1 -1
  135. package/dist/schemas/resources.js +87 -105
  136. package/dist/schemas/storage.d.ts +30 -1
  137. package/dist/schemas/storage.d.ts.map +1 -1
  138. package/dist/schemas/storage.js +20 -1
  139. package/dist/schemas/tasks.d.ts +3 -8
  140. package/dist/schemas/tasks.d.ts.map +1 -1
  141. package/dist/schemas/tasks.js +1 -4
  142. package/package.json +1 -1
@@ -4,7 +4,7 @@
4
4
  * Plane: `management`. The manifest is the user-facing, editable surface
5
5
  * declared in Git at repo root. The CLI parses `sylphx.toml` via Bun's
6
6
  * built-in TOML parser, validates against this schema, and pushes to the
7
- * Management API (`PUT /projects/:id/manifest`, landing in a follow-up PR).
7
+ * Management API (`PUT /projects/:id/manifest`).
8
8
  *
9
9
  * Slug-valued (not TypeID) on purpose: the manifest is what users type,
10
10
  * so slugs are the DX-correct surface. The server maps slugs → TypeIDs
@@ -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). */
@@ -37,13 +37,19 @@ export type BuildMachineSize = typeof BuildMachineSize.Type;
37
37
  /** Buildpack identifier per ADR-071. `auto` lets the platform detect. */
38
38
  export declare const BuildpackName: Schema.Literal<["auto", "ruby", "node", "python", "static", "dockerfile"]>;
39
39
  export type BuildpackName = typeof BuildpackName.Type;
40
- /** Service type discriminant drives K8s workload shape (Deployment/Job). */
40
+ /** Build strategy hint. `dockerfile` pins the build to the declared Dockerfile. */
41
+ export declare const BuildStrategy: Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>;
42
+ export type BuildStrategy = typeof BuildStrategy.Type;
43
+ /** Service type discriminant — drives the platform runtime shape. */
41
44
  export declare const ServiceType: Schema.Literal<["web", "worker", "cron", "function"]>;
42
45
  export type ServiceType = typeof ServiceType.Type;
43
- /** 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. */
44
50
  export declare const DeployStrategy: Schema.Literal<["rolling", "blue-green", "immediate"]>;
45
51
  export type DeployStrategy = typeof DeployStrategy.Type;
46
- /** WWW-apex redirect policy at the Gateway API listener. */
52
+ /** WWW-apex redirect policy. */
47
53
  export declare const WwwRedirect: Schema.Literal<["apex", "www", "none"]>;
48
54
  export type WwwRedirect = typeof WwwRedirect.Type;
49
55
  export declare const ManifestProjectSection: Schema.Struct<{
@@ -68,8 +74,12 @@ export declare const ManifestBuildSection: Schema.Struct<{
68
74
  * package.json / Gemfile / requirements.txt / Dockerfile.
69
75
  */
70
76
  buildpack: Schema.optional<Schema.Literal<["auto", "ruby", "node", "python", "static", "dockerfile"]>>;
77
+ /** High-level build strategy alias used by current sylphx.toml files. */
78
+ strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
71
79
  /** Override path to Dockerfile (implies buildpack=dockerfile). */
72
80
  dockerfile: Schema.optional<typeof Schema.String>;
81
+ /** Docker build context path. `context` is the product-facing TOML alias. */
82
+ context: Schema.optional<typeof Schema.String>;
73
83
  /** Docker build context path (default: repo root). */
74
84
  docker_context: Schema.optional<typeof Schema.String>;
75
85
  /** Custom build command; overrides buildpack default. */
@@ -85,10 +95,10 @@ export type ManifestBuildSection = typeof ManifestBuildSection.Type;
85
95
  export declare const ManifestDeploySection: Schema.Struct<{
86
96
  /**
87
97
  * Command run before traffic cutover (DB migrations via expand-and-
88
- * 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.
89
99
  */
90
100
  release_command: Schema.optional<typeof Schema.String>;
91
- /** HTTP path for K8s readinessProbe. */
101
+ /** HTTP readiness path. */
92
102
  health_check_path: Schema.optional<typeof Schema.String>;
93
103
  /** Timeout in seconds. */
94
104
  health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
@@ -98,57 +108,108 @@ export declare const ManifestDeploySection: Schema.Struct<{
98
108
  graceful_shutdown: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
99
109
  }>;
100
110
  export type ManifestDeploySection = typeof ManifestDeploySection.Type;
101
- export declare const ManifestServiceSection: Schema.Struct<{
102
- /** Service name — unique within project. Used as K8s Deployment name. */
111
+ export declare const ManifestServiceBuildSection: Schema.Struct<{
112
+ strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
113
+ dockerfile: Schema.optional<typeof Schema.String>;
114
+ context: Schema.optional<typeof Schema.String>;
115
+ docker_context: Schema.optional<typeof Schema.String>;
116
+ build_command: Schema.optional<typeof Schema.String>;
117
+ }>;
118
+ export type ManifestServiceBuildSection = typeof ManifestServiceBuildSection.Type;
119
+ export declare const ManifestServiceHealthSection: Schema.Struct<{
120
+ mode: Schema.optional<Schema.Literal<["http", "tcp", "command"]>>;
121
+ path: Schema.optional<typeof Schema.String>;
122
+ command: Schema.optional<typeof Schema.String>;
123
+ }>;
124
+ export type ManifestServiceHealthSection = typeof ManifestServiceHealthSection.Type;
125
+ export declare const ManifestServiceSection: Schema.filter<Schema.Struct<{
126
+ /** Service name — unique within project. */
103
127
  name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
104
128
  type: Schema.Literal<["web", "worker", "cron", "function"]>;
105
- /** Container start command. */
129
+ /** Per-service build override. Root [build] remains the default. */
130
+ build: Schema.optional<Schema.Struct<{
131
+ strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
132
+ dockerfile: Schema.optional<typeof Schema.String>;
133
+ context: Schema.optional<typeof Schema.String>;
134
+ docker_context: Schema.optional<typeof Schema.String>;
135
+ build_command: Schema.optional<typeof Schema.String>;
136
+ }>>;
137
+ /** Per-service health contract. Platform owns probe translation. */
138
+ health: Schema.optional<Schema.Struct<{
139
+ mode: Schema.optional<Schema.Literal<["http", "tcp", "command"]>>;
140
+ path: Schema.optional<typeof Schema.String>;
141
+ command: Schema.optional<typeof Schema.String>;
142
+ }>>;
143
+ /** Service start command. */
106
144
  command: Schema.optional<typeof Schema.String>;
107
- /** Internal container port; required for `web`. */
145
+ /** Service port; required for `web` when it cannot be detected automatically. */
108
146
  port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
109
- /**
110
- * Public HTTP port (Gateway API listener). Defaults to 443 for web.
111
- * Most users leave unset.
112
- */
113
- internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
114
- /** Replica count. Ignored for `cron`. */
115
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
116
- /** Compute size; maps to per-service K8s resources.requests/limits. */
147
+ /** Explicit instance count. Ignored for `cron`. */
148
+ instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
149
+ /** Compute size; maps to per-service runtime resources. */
117
150
  instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
118
151
  /** Required when type=cron. Standard 5-field cron expression. */
119
152
  cron_schedule: Schema.optional<typeof Schema.String>;
120
153
  /** Optional per-service region override. */
121
154
  regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
122
- /**
123
- * Scale-to-zero (KEDA). `false` (default) = pinned at `min_replicas >= 1`;
124
- * `true` = the reconciler emits a KEDA ScaledObject and lets KEDA drive
125
- * the replica count from 0 → N on incoming traffic (docs/design/scale-to-zero.md).
126
- */
155
+ /** Scale-to-zero. `false` (default) = pinned at `min_instances >= 1`. */
127
156
  scale_to_zero: Schema.optional<typeof Schema.Boolean>;
128
157
  /**
129
- * Seconds of no traffic before KEDA scales the Deployment down to 0.
130
- * Maps to KEDA `cooldownPeriod`. Only meaningful when `scale_to_zero=true`.
158
+ * Seconds of no traffic before the platform scales the service down to 0.
159
+ * Only meaningful when `scale_to_zero=true`.
131
160
  * Range: 60s–3600s. Default: 300 (5 min).
132
161
  */
133
162
  idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
134
163
  /**
135
- * Minimum replica count. Default: `0` when `scale_to_zero=true`, else `1`.
136
- * Setting `min_replicas=1` alongside `scale_to_zero=true` keeps a warm
137
- * floor while still letting KEDA scale horizontally beyond 1.
164
+ * Minimum instance count. Default: `0` when `scale_to_zero=true`, else `1`.
165
+ * Setting `min_instances=1` alongside `scale_to_zero=true` keeps a warm
166
+ * floor while still allowing horizontal scale-out beyond 1.
138
167
  */
139
- min_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
168
+ min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
169
+ /** Optional upper bound for platform-managed horizontal scale-out. */
170
+ max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
140
171
  /** Per-service env var merge — refs entries from top-level [env]. */
141
172
  env: Schema.optional<Schema.Array$<typeof Schema.String>>;
142
- /** Per-service resource bindings (by resource name). */
173
+ /**
174
+ * Reserved for declarative service-scoped managed resource bindings.
175
+ * Current push-webhook support is environment-scoped via top-level [resources.*],
176
+ * so deploy parsing fails closed if this field is present.
177
+ */
143
178
  resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
144
- }>;
179
+ /** Paths whose changes should trigger this service in monorepos. */
180
+ watch_paths: Schema.optional<Schema.Array$<typeof Schema.String>>;
181
+ }>>;
145
182
  export type ManifestServiceSection = typeof ManifestServiceSection.Type;
183
+ export declare const ManifestMigrationEngine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
184
+ export type ManifestMigrationEngine = typeof ManifestMigrationEngine.Type;
185
+ export declare const ManifestMigrationDestructivePolicy: Schema.Literal<["require-approval", "allow"]>;
186
+ export type ManifestMigrationDestructivePolicy = typeof ManifestMigrationDestructivePolicy.Type;
187
+ export declare const ManifestMigrationsSection: Schema.Struct<{
188
+ engine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
189
+ dir: Schema.optional<typeof Schema.String>;
190
+ image: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
191
+ command: Schema.filter<typeof Schema.String>;
192
+ timeout: Schema.optional<typeof Schema.String>;
193
+ destructive_policy: Schema.optional<Schema.Literal<["require-approval", "allow"]>>;
194
+ }>;
195
+ export type ManifestMigrationsSection = typeof ManifestMigrationsSection.Type;
196
+ export declare const ManifestDatabaseSection: Schema.Struct<{
197
+ migrations: Schema.optional<Schema.Struct<{
198
+ engine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
199
+ dir: Schema.optional<typeof Schema.String>;
200
+ image: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
201
+ command: Schema.filter<typeof Schema.String>;
202
+ timeout: Schema.optional<typeof Schema.String>;
203
+ destructive_policy: Schema.optional<Schema.Literal<["require-approval", "allow"]>>;
204
+ }>>;
205
+ }>;
206
+ export type ManifestDatabaseSection = typeof ManifestDatabaseSection.Type;
146
207
  /**
147
208
  * Env var value — literal, secret reference, or resource attribute.
148
209
  * Values are NEVER stored in the manifest — always by reference.
149
210
  * `from_secret` resolves via the platform `secrets` table (AES-256-GCM).
150
- * `from_resource` + `attr` resolves via the `resources` table; valid
151
- * attributes: `connection_url | host | port | user | password | database`.
211
+ * `from_resource` + `attr` resolves product-level outputs such as
212
+ * `database_url`, `cache_url`, `search_url`, and `volume_mount_path`.
152
213
  */
153
214
  export declare const ManifestEnvValue: Schema.Union<[Schema.Struct<{
154
215
  value: typeof Schema.String;
@@ -171,56 +232,116 @@ export declare const ManifestDomainSection: Schema.Struct<{
171
232
  aliases: Schema.optional<Schema.Array$<typeof Schema.String>>;
172
233
  }>;
173
234
  export type ManifestDomainSection = typeof ManifestDomainSection.Type;
174
- export declare const PostgresTier: Schema.Literal<["nano", "micro", "standard", "large", "xl"]>;
235
+ export declare const ManifestManagedResourceTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
236
+ export type ManifestManagedResourceTier = typeof ManifestManagedResourceTier.Type;
237
+ export declare const PostgresTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
175
238
  export type PostgresTier = typeof PostgresTier.Type;
176
239
  export declare const PostgresVersion: Schema.Literal<["15", "16", "17"]>;
177
240
  export type PostgresVersion = typeof PostgresVersion.Type;
178
- export declare const SearchTier: Schema.Literal<["micro", "standard"]>;
241
+ export declare const SearchTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
179
242
  export type SearchTier = typeof SearchTier.Type;
243
+ export declare const KvTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
244
+ export type KvTier = typeof KvTier.Type;
245
+ export declare const ManifestVolumeTier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
246
+ export type ManifestVolumeTier = typeof ManifestVolumeTier.Type;
247
+ export declare const ManifestVolumeSharing: Schema.Literal<["single-writer", "shared"]>;
248
+ export type ManifestVolumeSharing = typeof ManifestVolumeSharing.Type;
180
249
  export declare const ManifestDatabaseEngine: Schema.Literal<["postgres"]>;
181
250
  export type ManifestDatabaseEngine = typeof ManifestDatabaseEngine.Type;
182
- export declare const ManifestSearchEngine: Schema.Literal<["typesense"]>;
183
- export type ManifestSearchEngine = typeof ManifestSearchEngine.Type;
184
251
  export declare const ManifestDatabaseResource: Schema.Struct<{
185
252
  /** Capability-specific engine. PostgreSQL is the first supported database engine. */
186
253
  engine: Schema.optional<Schema.Literal<["postgres"]>>;
187
- /** CNPG tier; IMMUTABLE after creation. */
188
- tier: Schema.Literal<["nano", "micro", "standard", "large", "xl"]>;
254
+ /** Product tier; IMMUTABLE after creation. */
255
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
189
256
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
190
257
  version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
191
- /** Enable CNPG read-replica(s). */
192
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
258
+ /** Optional managed read replicas. */
259
+ read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
193
260
  /** Branch-per-preview (P0 gap #4 sibling). */
194
261
  branch_on_preview: Schema.optional<typeof Schema.Boolean>;
195
262
  }>;
196
263
  export type ManifestDatabaseResource = typeof ManifestDatabaseResource.Type;
264
+ export declare const ManifestKvResource: Schema.Struct<{
265
+ engine: Schema.optionalWith<typeof Schema.Never, {
266
+ exact: true;
267
+ }>;
268
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
269
+ storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
270
+ }>;
271
+ export type ManifestKvResource = typeof ManifestKvResource.Type;
197
272
  export declare const ManifestSearchResource: Schema.Struct<{
198
- /** Capability-specific engine. Typesense is the first supported search engine. */
199
- engine: Schema.optional<Schema.Literal<["typesense"]>>;
200
- tier: Schema.Literal<["micro", "standard"]>;
273
+ engine: Schema.optionalWith<typeof Schema.Never, {
274
+ exact: true;
275
+ }>;
276
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
201
277
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
202
- nodes: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
203
278
  }>;
204
279
  export type ManifestSearchResource = typeof ManifestSearchResource.Type;
280
+ export declare const ManifestVolumeResource: Schema.Struct<{
281
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
282
+ storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
283
+ /**
284
+ * Public sharing intent. The platform maps this to the best backend storage
285
+ * class without exposing implementation details.
286
+ */
287
+ sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
288
+ /**
289
+ * Optional env-facing path metadata. This does not mount the volume into an
290
+ * app service by itself; service/task mounts stay explicit bindings.
291
+ */
292
+ mount_path: Schema.optional<Schema.filter<typeof Schema.String>>;
293
+ /**
294
+ * Binding role controls env var prefix. Example: role="workspace" emits
295
+ * WORKSPACE_VOLUME_ID for a volume binding.
296
+ */
297
+ role: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>;
298
+ }>;
299
+ export type ManifestVolumeResource = typeof ManifestVolumeResource.Type;
205
300
  export declare const ManifestResourcesSection: Schema.Struct<{
206
301
  database: Schema.optional<Schema.Struct<{
207
302
  /** Capability-specific engine. PostgreSQL is the first supported database engine. */
208
303
  engine: Schema.optional<Schema.Literal<["postgres"]>>;
209
- /** CNPG tier; IMMUTABLE after creation. */
210
- tier: Schema.Literal<["nano", "micro", "standard", "large", "xl"]>;
304
+ /** Product tier; IMMUTABLE after creation. */
305
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
211
306
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
212
307
  version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
213
- /** Enable CNPG read-replica(s). */
214
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
308
+ /** Optional managed read replicas. */
309
+ read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
215
310
  /** Branch-per-preview (P0 gap #4 sibling). */
216
311
  branch_on_preview: Schema.optional<typeof Schema.Boolean>;
217
312
  }>>;
313
+ kv: Schema.optional<Schema.Struct<{
314
+ engine: Schema.optionalWith<typeof Schema.Never, {
315
+ exact: true;
316
+ }>;
317
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
318
+ storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
319
+ }>>;
218
320
  search: Schema.optional<Schema.Struct<{
219
- /** Capability-specific engine. Typesense is the first supported search engine. */
220
- engine: Schema.optional<Schema.Literal<["typesense"]>>;
221
- tier: Schema.Literal<["micro", "standard"]>;
321
+ engine: Schema.optionalWith<typeof Schema.Never, {
322
+ exact: true;
323
+ }>;
324
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
325
+ storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
326
+ }>>;
327
+ volume: Schema.optional<Schema.Struct<{
328
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
222
329
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
223
- nodes: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
330
+ /**
331
+ * Public sharing intent. The platform maps this to the best backend storage
332
+ * class without exposing implementation details.
333
+ */
334
+ sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
335
+ /**
336
+ * Optional env-facing path metadata. This does not mount the volume into an
337
+ * app service by itself; service/task mounts stay explicit bindings.
338
+ */
339
+ mount_path: Schema.optional<Schema.filter<typeof Schema.String>>;
340
+ /**
341
+ * Binding role controls env var prefix. Example: role="workspace" emits
342
+ * WORKSPACE_VOLUME_ID for a volume binding.
343
+ */
344
+ role: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>;
224
345
  }>>;
225
346
  }>;
226
347
  export type ManifestResourcesSection = typeof ManifestResourcesSection.Type;
@@ -242,22 +363,22 @@ export type ManifestCiSection = typeof ManifestCiSection.Type;
242
363
  * `[[services]]` entry with the matching name. Arrays replace, scalars/
243
364
  * structs merge.
244
365
  */
245
- export declare const ManifestServiceOverride: Schema.Struct<{
366
+ export declare const ManifestServiceOverride: Schema.filter<Schema.Struct<{
246
367
  name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
247
368
  type: Schema.optional<Schema.Literal<["web", "worker", "cron", "function"]>>;
248
369
  command: Schema.optional<typeof Schema.String>;
249
370
  port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
250
- internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
251
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
371
+ instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
252
372
  instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
253
373
  cron_schedule: Schema.optional<typeof Schema.String>;
254
374
  regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
255
375
  scale_to_zero: Schema.optional<typeof Schema.Boolean>;
256
376
  idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
257
- min_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
377
+ min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
378
+ max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
258
379
  env: Schema.optional<Schema.Array$<typeof Schema.String>>;
259
380
  resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
260
- }>;
381
+ }>>;
261
382
  export type ManifestServiceOverride = typeof ManifestServiceOverride.Type;
262
383
  export declare const ManifestEnvironmentOverride: Schema.Struct<{
263
384
  /** Shallow-merge over top-level [env]. */
@@ -276,8 +397,12 @@ export declare const ManifestEnvironmentOverride: Schema.Struct<{
276
397
  * package.json / Gemfile / requirements.txt / Dockerfile.
277
398
  */
278
399
  buildpack: Schema.optional<Schema.Literal<["auto", "ruby", "node", "python", "static", "dockerfile"]>>;
400
+ /** High-level build strategy alias used by current sylphx.toml files. */
401
+ strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
279
402
  /** Override path to Dockerfile (implies buildpack=dockerfile). */
280
403
  dockerfile: Schema.optional<typeof Schema.String>;
404
+ /** Docker build context path. `context` is the product-facing TOML alias. */
405
+ context: Schema.optional<typeof Schema.String>;
281
406
  /** Docker build context path (default: repo root). */
282
407
  docker_context: Schema.optional<typeof Schema.String>;
283
408
  /** Custom build command; overrides buildpack default. */
@@ -293,10 +418,10 @@ export declare const ManifestEnvironmentOverride: Schema.Struct<{
293
418
  deploy: Schema.optional<Schema.Struct<{
294
419
  /**
295
420
  * Command run before traffic cutover (DB migrations via expand-and-
296
- * contract). Runs as an ArgoCD PreSync Job (sync-wave "-1"). ADR-066.2.
421
+ * contract). Runs before the new release accepts traffic. ADR-066.2.
297
422
  */
298
423
  release_command: Schema.optional<typeof Schema.String>;
299
- /** HTTP path for K8s readinessProbe. */
424
+ /** HTTP readiness path. */
300
425
  health_check_path: Schema.optional<typeof Schema.String>;
301
426
  /** Timeout in seconds. */
302
427
  health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
@@ -306,22 +431,22 @@ export declare const ManifestEnvironmentOverride: Schema.Struct<{
306
431
  graceful_shutdown: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
307
432
  }>>;
308
433
  /** Sparse service overrides; entries match by `name`. */
309
- services: Schema.optional<Schema.Array$<Schema.Struct<{
434
+ services: Schema.optional<Schema.Array$<Schema.filter<Schema.Struct<{
310
435
  name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
311
436
  type: Schema.optional<Schema.Literal<["web", "worker", "cron", "function"]>>;
312
437
  command: Schema.optional<typeof Schema.String>;
313
438
  port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
314
- internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
315
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
439
+ instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
316
440
  instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
317
441
  cron_schedule: Schema.optional<typeof Schema.String>;
318
442
  regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
319
443
  scale_to_zero: Schema.optional<typeof Schema.Boolean>;
320
444
  idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
321
- min_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
445
+ min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
446
+ max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
322
447
  env: Schema.optional<Schema.Array$<typeof Schema.String>>;
323
448
  resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
324
- }>>>;
449
+ }>>>>;
325
450
  /** Per-env region override. */
326
451
  region: Schema.optional<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>;
327
452
  /** Domain overrides; typically for preview-only hostnames. */
@@ -360,15 +485,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
360
485
  readonly port?: number | undefined;
361
486
  readonly env?: readonly string[] | undefined;
362
487
  readonly resources?: readonly string[] | undefined;
363
- readonly replicas?: number | undefined;
488
+ readonly instances?: number | undefined;
489
+ readonly max_instances?: number | undefined;
364
490
  readonly command?: string | undefined;
365
- readonly internal_port?: number | undefined;
366
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
491
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
367
492
  readonly cron_schedule?: string | undefined;
368
493
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
369
494
  readonly scale_to_zero?: boolean | undefined;
370
495
  readonly idle_timeout_seconds?: number | undefined;
371
- readonly min_replicas?: number | undefined;
496
+ readonly min_instances?: number | undefined;
372
497
  }[] | undefined;
373
498
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
374
499
  readonly env?: {
@@ -382,6 +507,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
382
507
  };
383
508
  } | undefined;
384
509
  readonly build?: {
510
+ readonly context?: string | undefined;
511
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
385
512
  readonly dockerfile?: string | undefined;
386
513
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
387
514
  readonly docker_context?: string | undefined;
@@ -412,15 +539,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
412
539
  readonly port?: number | undefined;
413
540
  readonly env?: readonly string[] | undefined;
414
541
  readonly resources?: readonly string[] | undefined;
415
- readonly replicas?: number | undefined;
542
+ readonly instances?: number | undefined;
543
+ readonly max_instances?: number | undefined;
416
544
  readonly command?: string | undefined;
417
- readonly internal_port?: number | undefined;
418
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
545
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
419
546
  readonly cron_schedule?: string | undefined;
420
547
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
421
548
  readonly scale_to_zero?: boolean | undefined;
422
549
  readonly idle_timeout_seconds?: number | undefined;
423
- readonly min_replicas?: number | undefined;
550
+ readonly min_instances?: number | undefined;
424
551
  }[] | undefined;
425
552
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
426
553
  readonly env?: {
@@ -434,6 +561,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
434
561
  };
435
562
  } | undefined;
436
563
  readonly build?: {
564
+ readonly context?: string | undefined;
565
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
437
566
  readonly dockerfile?: string | undefined;
438
567
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
439
568
  readonly docker_context?: string | undefined;
@@ -464,15 +593,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
464
593
  readonly port?: number | undefined;
465
594
  readonly env?: readonly string[] | undefined;
466
595
  readonly resources?: readonly string[] | undefined;
467
- readonly replicas?: number | undefined;
596
+ readonly instances?: number | undefined;
597
+ readonly max_instances?: number | undefined;
468
598
  readonly command?: string | undefined;
469
- readonly internal_port?: number | undefined;
470
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
599
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
471
600
  readonly cron_schedule?: string | undefined;
472
601
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
473
602
  readonly scale_to_zero?: boolean | undefined;
474
603
  readonly idle_timeout_seconds?: number | undefined;
475
- readonly min_replicas?: number | undefined;
604
+ readonly min_instances?: number | undefined;
476
605
  }[] | undefined;
477
606
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
478
607
  readonly env?: {
@@ -486,6 +615,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
486
615
  };
487
616
  } | undefined;
488
617
  readonly build?: {
618
+ readonly context?: string | undefined;
619
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
489
620
  readonly dockerfile?: string | undefined;
490
621
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
491
622
  readonly docker_context?: string | undefined;
@@ -516,15 +647,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
516
647
  readonly port?: number | undefined;
517
648
  readonly env?: readonly string[] | undefined;
518
649
  readonly resources?: readonly string[] | undefined;
519
- readonly replicas?: number | undefined;
650
+ readonly instances?: number | undefined;
651
+ readonly max_instances?: number | undefined;
520
652
  readonly command?: string | undefined;
521
- readonly internal_port?: number | undefined;
522
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
653
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
523
654
  readonly cron_schedule?: string | undefined;
524
655
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
525
656
  readonly scale_to_zero?: boolean | undefined;
526
657
  readonly idle_timeout_seconds?: number | undefined;
527
- readonly min_replicas?: number | undefined;
658
+ readonly min_instances?: number | undefined;
528
659
  }[] | undefined;
529
660
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
530
661
  readonly env?: {
@@ -538,6 +669,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
538
669
  };
539
670
  } | undefined;
540
671
  readonly build?: {
672
+ readonly context?: string | undefined;
673
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
541
674
  readonly dockerfile?: string | undefined;
542
675
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
543
676
  readonly docker_context?: string | undefined;
@@ -569,15 +702,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
569
702
  readonly port?: number | undefined;
570
703
  readonly env?: readonly string[] | undefined;
571
704
  readonly resources?: readonly string[] | undefined;
572
- readonly replicas?: number | undefined;
705
+ readonly instances?: number | undefined;
706
+ readonly max_instances?: number | undefined;
573
707
  readonly command?: string | undefined;
574
- readonly internal_port?: number | undefined;
575
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
708
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
576
709
  readonly cron_schedule?: string | undefined;
577
710
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
578
711
  readonly scale_to_zero?: boolean | undefined;
579
712
  readonly idle_timeout_seconds?: number | undefined;
580
- readonly min_replicas?: number | undefined;
713
+ readonly min_instances?: number | undefined;
581
714
  }[] | undefined;
582
715
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
583
716
  readonly env?: {
@@ -591,6 +724,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
591
724
  };
592
725
  } | undefined;
593
726
  readonly build?: {
727
+ readonly context?: string | undefined;
728
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
594
729
  readonly dockerfile?: string | undefined;
595
730
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
596
731
  readonly docker_context?: string | undefined;
@@ -621,15 +756,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
621
756
  readonly port?: number | undefined;
622
757
  readonly env?: readonly string[] | undefined;
623
758
  readonly resources?: readonly string[] | undefined;
624
- readonly replicas?: number | undefined;
759
+ readonly instances?: number | undefined;
760
+ readonly max_instances?: number | undefined;
625
761
  readonly command?: string | undefined;
626
- readonly internal_port?: number | undefined;
627
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
762
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
628
763
  readonly cron_schedule?: string | undefined;
629
764
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
630
765
  readonly scale_to_zero?: boolean | undefined;
631
766
  readonly idle_timeout_seconds?: number | undefined;
632
- readonly min_replicas?: number | undefined;
767
+ readonly min_instances?: number | undefined;
633
768
  }[] | undefined;
634
769
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
635
770
  readonly env?: {
@@ -643,6 +778,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
643
778
  };
644
779
  } | undefined;
645
780
  readonly build?: {
781
+ readonly context?: string | undefined;
782
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
646
783
  readonly dockerfile?: string | undefined;
647
784
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
648
785
  readonly docker_context?: string | undefined;
@@ -673,15 +810,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
673
810
  readonly port?: number | undefined;
674
811
  readonly env?: readonly string[] | undefined;
675
812
  readonly resources?: readonly string[] | undefined;
676
- readonly replicas?: number | undefined;
813
+ readonly instances?: number | undefined;
814
+ readonly max_instances?: number | undefined;
677
815
  readonly command?: string | undefined;
678
- readonly internal_port?: number | undefined;
679
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
816
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
680
817
  readonly cron_schedule?: string | undefined;
681
818
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
682
819
  readonly scale_to_zero?: boolean | undefined;
683
820
  readonly idle_timeout_seconds?: number | undefined;
684
- readonly min_replicas?: number | undefined;
821
+ readonly min_instances?: number | undefined;
685
822
  }[] | undefined;
686
823
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
687
824
  readonly env?: {
@@ -695,6 +832,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
695
832
  };
696
833
  } | undefined;
697
834
  readonly build?: {
835
+ readonly context?: string | undefined;
836
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
698
837
  readonly dockerfile?: string | undefined;
699
838
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
700
839
  readonly docker_context?: string | undefined;
@@ -725,15 +864,15 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
725
864
  readonly port?: number | undefined;
726
865
  readonly env?: readonly string[] | undefined;
727
866
  readonly resources?: readonly string[] | undefined;
728
- readonly replicas?: number | undefined;
867
+ readonly instances?: number | undefined;
868
+ readonly max_instances?: number | undefined;
729
869
  readonly command?: string | undefined;
730
- readonly internal_port?: number | undefined;
731
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
870
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
732
871
  readonly cron_schedule?: string | undefined;
733
872
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
734
873
  readonly scale_to_zero?: boolean | undefined;
735
874
  readonly idle_timeout_seconds?: number | undefined;
736
- readonly min_replicas?: number | undefined;
875
+ readonly min_instances?: number | undefined;
737
876
  }[] | undefined;
738
877
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
739
878
  readonly env?: {
@@ -747,6 +886,8 @@ export declare const ManifestEnvironmentsMap: Schema.SchemaClass<{
747
886
  };
748
887
  } | undefined;
749
888
  readonly build?: {
889
+ readonly context?: string | undefined;
890
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
750
891
  readonly dockerfile?: string | undefined;
751
892
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
752
893
  readonly docker_context?: string | undefined;
@@ -793,8 +934,12 @@ export declare const SylphxManifest: Schema.Struct<{
793
934
  * package.json / Gemfile / requirements.txt / Dockerfile.
794
935
  */
795
936
  buildpack: Schema.optional<Schema.Literal<["auto", "ruby", "node", "python", "static", "dockerfile"]>>;
937
+ /** High-level build strategy alias used by current sylphx.toml files. */
938
+ strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
796
939
  /** Override path to Dockerfile (implies buildpack=dockerfile). */
797
940
  dockerfile: Schema.optional<typeof Schema.String>;
941
+ /** Docker build context path. `context` is the product-facing TOML alias. */
942
+ context: Schema.optional<typeof Schema.String>;
798
943
  /** Docker build context path (default: repo root). */
799
944
  docker_context: Schema.optional<typeof Schema.String>;
800
945
  /** Custom build command; overrides buildpack default. */
@@ -809,10 +954,10 @@ export declare const SylphxManifest: Schema.Struct<{
809
954
  deploy: Schema.optional<Schema.Struct<{
810
955
  /**
811
956
  * Command run before traffic cutover (DB migrations via expand-and-
812
- * contract). Runs as an ArgoCD PreSync Job (sync-wave "-1"). ADR-066.2.
957
+ * contract). Runs before the new release accepts traffic. ADR-066.2.
813
958
  */
814
959
  release_command: Schema.optional<typeof Schema.String>;
815
- /** HTTP path for K8s readinessProbe. */
960
+ /** HTTP readiness path. */
816
961
  health_check_path: Schema.optional<typeof Schema.String>;
817
962
  /** Timeout in seconds. */
818
963
  health_check_timeout: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
@@ -821,50 +966,73 @@ export declare const SylphxManifest: Schema.Struct<{
821
966
  /** Grace period before SIGKILL (seconds). */
822
967
  graceful_shutdown: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
823
968
  }>>;
824
- services: Schema.optional<Schema.Array$<Schema.Struct<{
825
- /** Service name — unique within project. Used as K8s Deployment name. */
969
+ services: Schema.optional<Schema.Array$<Schema.filter<Schema.Struct<{
970
+ /** Service name — unique within project. */
826
971
  name: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
827
972
  type: Schema.Literal<["web", "worker", "cron", "function"]>;
828
- /** Container start command. */
973
+ /** Per-service build override. Root [build] remains the default. */
974
+ build: Schema.optional<Schema.Struct<{
975
+ strategy: Schema.optional<Schema.Literal<["auto", "buildpack", "dockerfile", "nixpacks"]>>;
976
+ dockerfile: Schema.optional<typeof Schema.String>;
977
+ context: Schema.optional<typeof Schema.String>;
978
+ docker_context: Schema.optional<typeof Schema.String>;
979
+ build_command: Schema.optional<typeof Schema.String>;
980
+ }>>;
981
+ /** Per-service health contract. Platform owns probe translation. */
982
+ health: Schema.optional<Schema.Struct<{
983
+ mode: Schema.optional<Schema.Literal<["http", "tcp", "command"]>>;
984
+ path: Schema.optional<typeof Schema.String>;
985
+ command: Schema.optional<typeof Schema.String>;
986
+ }>>;
987
+ /** Service start command. */
829
988
  command: Schema.optional<typeof Schema.String>;
830
- /** Internal container port; required for `web`. */
989
+ /** Service port; required for `web` when it cannot be detected automatically. */
831
990
  port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
832
- /**
833
- * Public HTTP port (Gateway API listener). Defaults to 443 for web.
834
- * Most users leave unset.
835
- */
836
- internal_port: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
837
- /** Replica count. Ignored for `cron`. */
838
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
839
- /** Compute size; maps to per-service K8s resources.requests/limits. */
991
+ /** Explicit instance count. Ignored for `cron`. */
992
+ instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
993
+ /** Compute size; maps to per-service runtime resources. */
840
994
  instance_type: Schema.optional<Schema.Literal<["nano", "micro", "small", "standard", "large", "xlarge"]>>;
841
995
  /** Required when type=cron. Standard 5-field cron expression. */
842
996
  cron_schedule: Schema.optional<typeof Schema.String>;
843
997
  /** Optional per-service region override. */
844
998
  regions: Schema.optional<Schema.Array$<Schema.Literal<["fsn1", "nbg1", "hel1", "ash1", "hil1"]>>>;
845
- /**
846
- * Scale-to-zero (KEDA). `false` (default) = pinned at `min_replicas >= 1`;
847
- * `true` = the reconciler emits a KEDA ScaledObject and lets KEDA drive
848
- * the replica count from 0 → N on incoming traffic (docs/design/scale-to-zero.md).
849
- */
999
+ /** Scale-to-zero. `false` (default) = pinned at `min_instances >= 1`. */
850
1000
  scale_to_zero: Schema.optional<typeof Schema.Boolean>;
851
1001
  /**
852
- * Seconds of no traffic before KEDA scales the Deployment down to 0.
853
- * Maps to KEDA `cooldownPeriod`. Only meaningful when `scale_to_zero=true`.
1002
+ * Seconds of no traffic before the platform scales the service down to 0.
1003
+ * Only meaningful when `scale_to_zero=true`.
854
1004
  * Range: 60s–3600s. Default: 300 (5 min).
855
1005
  */
856
1006
  idle_timeout_seconds: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
857
1007
  /**
858
- * Minimum replica count. Default: `0` when `scale_to_zero=true`, else `1`.
859
- * Setting `min_replicas=1` alongside `scale_to_zero=true` keeps a warm
860
- * floor while still letting KEDA scale horizontally beyond 1.
1008
+ * Minimum instance count. Default: `0` when `scale_to_zero=true`, else `1`.
1009
+ * Setting `min_instances=1` alongside `scale_to_zero=true` keeps a warm
1010
+ * floor while still allowing horizontal scale-out beyond 1.
861
1011
  */
862
- min_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1012
+ min_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1013
+ /** Optional upper bound for platform-managed horizontal scale-out. */
1014
+ max_instances: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
863
1015
  /** Per-service env var merge — refs entries from top-level [env]. */
864
1016
  env: Schema.optional<Schema.Array$<typeof Schema.String>>;
865
- /** Per-service resource bindings (by resource name). */
1017
+ /**
1018
+ * Reserved for declarative service-scoped managed resource bindings.
1019
+ * Current push-webhook support is environment-scoped via top-level [resources.*],
1020
+ * so deploy parsing fails closed if this field is present.
1021
+ */
866
1022
  resources: Schema.optional<Schema.Array$<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>>;
867
- }>>>;
1023
+ /** Paths whose changes should trigger this service in monorepos. */
1024
+ watch_paths: Schema.optional<Schema.Array$<typeof Schema.String>>;
1025
+ }>>>>;
1026
+ database: Schema.optional<Schema.Struct<{
1027
+ migrations: Schema.optional<Schema.Struct<{
1028
+ engine: Schema.Literal<["atlas", "drizzle", "prisma", "alembic", "flyway", "goose", "sqlx", "custom"]>;
1029
+ dir: Schema.optional<typeof Schema.String>;
1030
+ image: Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>;
1031
+ command: Schema.filter<typeof Schema.String>;
1032
+ timeout: Schema.optional<typeof Schema.String>;
1033
+ destructive_policy: Schema.optional<Schema.Literal<["require-approval", "allow"]>>;
1034
+ }>>;
1035
+ }>>;
868
1036
  env: Schema.optional<Schema.Record$<typeof Schema.String, Schema.Union<[Schema.Struct<{
869
1037
  value: typeof Schema.String;
870
1038
  }>, Schema.Struct<{
@@ -899,15 +1067,15 @@ export declare const SylphxManifest: Schema.Struct<{
899
1067
  readonly port?: number | undefined;
900
1068
  readonly env?: readonly string[] | undefined;
901
1069
  readonly resources?: readonly string[] | undefined;
902
- readonly replicas?: number | undefined;
1070
+ readonly instances?: number | undefined;
1071
+ readonly max_instances?: number | undefined;
903
1072
  readonly command?: string | undefined;
904
- readonly internal_port?: number | undefined;
905
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1073
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
906
1074
  readonly cron_schedule?: string | undefined;
907
1075
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
908
1076
  readonly scale_to_zero?: boolean | undefined;
909
1077
  readonly idle_timeout_seconds?: number | undefined;
910
- readonly min_replicas?: number | undefined;
1078
+ readonly min_instances?: number | undefined;
911
1079
  }[] | undefined;
912
1080
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
913
1081
  readonly env?: {
@@ -921,6 +1089,8 @@ export declare const SylphxManifest: Schema.Struct<{
921
1089
  };
922
1090
  } | undefined;
923
1091
  readonly build?: {
1092
+ readonly context?: string | undefined;
1093
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
924
1094
  readonly dockerfile?: string | undefined;
925
1095
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
926
1096
  readonly docker_context?: string | undefined;
@@ -951,15 +1121,15 @@ export declare const SylphxManifest: Schema.Struct<{
951
1121
  readonly port?: number | undefined;
952
1122
  readonly env?: readonly string[] | undefined;
953
1123
  readonly resources?: readonly string[] | undefined;
954
- readonly replicas?: number | undefined;
1124
+ readonly instances?: number | undefined;
1125
+ readonly max_instances?: number | undefined;
955
1126
  readonly command?: string | undefined;
956
- readonly internal_port?: number | undefined;
957
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1127
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
958
1128
  readonly cron_schedule?: string | undefined;
959
1129
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
960
1130
  readonly scale_to_zero?: boolean | undefined;
961
1131
  readonly idle_timeout_seconds?: number | undefined;
962
- readonly min_replicas?: number | undefined;
1132
+ readonly min_instances?: number | undefined;
963
1133
  }[] | undefined;
964
1134
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
965
1135
  readonly env?: {
@@ -973,6 +1143,8 @@ export declare const SylphxManifest: Schema.Struct<{
973
1143
  };
974
1144
  } | undefined;
975
1145
  readonly build?: {
1146
+ readonly context?: string | undefined;
1147
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
976
1148
  readonly dockerfile?: string | undefined;
977
1149
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
978
1150
  readonly docker_context?: string | undefined;
@@ -1003,15 +1175,15 @@ export declare const SylphxManifest: Schema.Struct<{
1003
1175
  readonly port?: number | undefined;
1004
1176
  readonly env?: readonly string[] | undefined;
1005
1177
  readonly resources?: readonly string[] | undefined;
1006
- readonly replicas?: number | undefined;
1178
+ readonly instances?: number | undefined;
1179
+ readonly max_instances?: number | undefined;
1007
1180
  readonly command?: string | undefined;
1008
- readonly internal_port?: number | undefined;
1009
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1181
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
1010
1182
  readonly cron_schedule?: string | undefined;
1011
1183
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1012
1184
  readonly scale_to_zero?: boolean | undefined;
1013
1185
  readonly idle_timeout_seconds?: number | undefined;
1014
- readonly min_replicas?: number | undefined;
1186
+ readonly min_instances?: number | undefined;
1015
1187
  }[] | undefined;
1016
1188
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1017
1189
  readonly env?: {
@@ -1025,6 +1197,8 @@ export declare const SylphxManifest: Schema.Struct<{
1025
1197
  };
1026
1198
  } | undefined;
1027
1199
  readonly build?: {
1200
+ readonly context?: string | undefined;
1201
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1028
1202
  readonly dockerfile?: string | undefined;
1029
1203
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1030
1204
  readonly docker_context?: string | undefined;
@@ -1055,15 +1229,15 @@ export declare const SylphxManifest: Schema.Struct<{
1055
1229
  readonly port?: number | undefined;
1056
1230
  readonly env?: readonly string[] | undefined;
1057
1231
  readonly resources?: readonly string[] | undefined;
1058
- readonly replicas?: number | undefined;
1232
+ readonly instances?: number | undefined;
1233
+ readonly max_instances?: number | undefined;
1059
1234
  readonly command?: string | undefined;
1060
- readonly internal_port?: number | undefined;
1061
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1235
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
1062
1236
  readonly cron_schedule?: string | undefined;
1063
1237
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1064
1238
  readonly scale_to_zero?: boolean | undefined;
1065
1239
  readonly idle_timeout_seconds?: number | undefined;
1066
- readonly min_replicas?: number | undefined;
1240
+ readonly min_instances?: number | undefined;
1067
1241
  }[] | undefined;
1068
1242
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1069
1243
  readonly env?: {
@@ -1077,6 +1251,8 @@ export declare const SylphxManifest: Schema.Struct<{
1077
1251
  };
1078
1252
  } | undefined;
1079
1253
  readonly build?: {
1254
+ readonly context?: string | undefined;
1255
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1080
1256
  readonly dockerfile?: string | undefined;
1081
1257
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1082
1258
  readonly docker_context?: string | undefined;
@@ -1108,15 +1284,15 @@ export declare const SylphxManifest: Schema.Struct<{
1108
1284
  readonly port?: number | undefined;
1109
1285
  readonly env?: readonly string[] | undefined;
1110
1286
  readonly resources?: readonly string[] | undefined;
1111
- readonly replicas?: number | undefined;
1287
+ readonly instances?: number | undefined;
1288
+ readonly max_instances?: number | undefined;
1112
1289
  readonly command?: string | undefined;
1113
- readonly internal_port?: number | undefined;
1114
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1290
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
1115
1291
  readonly cron_schedule?: string | undefined;
1116
1292
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1117
1293
  readonly scale_to_zero?: boolean | undefined;
1118
1294
  readonly idle_timeout_seconds?: number | undefined;
1119
- readonly min_replicas?: number | undefined;
1295
+ readonly min_instances?: number | undefined;
1120
1296
  }[] | undefined;
1121
1297
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1122
1298
  readonly env?: {
@@ -1130,6 +1306,8 @@ export declare const SylphxManifest: Schema.Struct<{
1130
1306
  };
1131
1307
  } | undefined;
1132
1308
  readonly build?: {
1309
+ readonly context?: string | undefined;
1310
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1133
1311
  readonly dockerfile?: string | undefined;
1134
1312
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1135
1313
  readonly docker_context?: string | undefined;
@@ -1160,15 +1338,15 @@ export declare const SylphxManifest: Schema.Struct<{
1160
1338
  readonly port?: number | undefined;
1161
1339
  readonly env?: readonly string[] | undefined;
1162
1340
  readonly resources?: readonly string[] | undefined;
1163
- readonly replicas?: number | undefined;
1341
+ readonly instances?: number | undefined;
1342
+ readonly max_instances?: number | undefined;
1164
1343
  readonly command?: string | undefined;
1165
- readonly internal_port?: number | undefined;
1166
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1344
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
1167
1345
  readonly cron_schedule?: string | undefined;
1168
1346
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1169
1347
  readonly scale_to_zero?: boolean | undefined;
1170
1348
  readonly idle_timeout_seconds?: number | undefined;
1171
- readonly min_replicas?: number | undefined;
1349
+ readonly min_instances?: number | undefined;
1172
1350
  }[] | undefined;
1173
1351
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1174
1352
  readonly env?: {
@@ -1182,6 +1360,8 @@ export declare const SylphxManifest: Schema.Struct<{
1182
1360
  };
1183
1361
  } | undefined;
1184
1362
  readonly build?: {
1363
+ readonly context?: string | undefined;
1364
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1185
1365
  readonly dockerfile?: string | undefined;
1186
1366
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1187
1367
  readonly docker_context?: string | undefined;
@@ -1212,15 +1392,15 @@ export declare const SylphxManifest: Schema.Struct<{
1212
1392
  readonly port?: number | undefined;
1213
1393
  readonly env?: readonly string[] | undefined;
1214
1394
  readonly resources?: readonly string[] | undefined;
1215
- readonly replicas?: number | undefined;
1395
+ readonly instances?: number | undefined;
1396
+ readonly max_instances?: number | undefined;
1216
1397
  readonly command?: string | undefined;
1217
- readonly internal_port?: number | undefined;
1218
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1398
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
1219
1399
  readonly cron_schedule?: string | undefined;
1220
1400
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1221
1401
  readonly scale_to_zero?: boolean | undefined;
1222
1402
  readonly idle_timeout_seconds?: number | undefined;
1223
- readonly min_replicas?: number | undefined;
1403
+ readonly min_instances?: number | undefined;
1224
1404
  }[] | undefined;
1225
1405
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1226
1406
  readonly env?: {
@@ -1234,6 +1414,8 @@ export declare const SylphxManifest: Schema.Struct<{
1234
1414
  };
1235
1415
  } | undefined;
1236
1416
  readonly build?: {
1417
+ readonly context?: string | undefined;
1418
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1237
1419
  readonly dockerfile?: string | undefined;
1238
1420
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1239
1421
  readonly docker_context?: string | undefined;
@@ -1264,15 +1446,15 @@ export declare const SylphxManifest: Schema.Struct<{
1264
1446
  readonly port?: number | undefined;
1265
1447
  readonly env?: readonly string[] | undefined;
1266
1448
  readonly resources?: readonly string[] | undefined;
1267
- readonly replicas?: number | undefined;
1449
+ readonly instances?: number | undefined;
1450
+ readonly max_instances?: number | undefined;
1268
1451
  readonly command?: string | undefined;
1269
- readonly internal_port?: number | undefined;
1270
- readonly instance_type?: "standard" | "large" | "xlarge" | "nano" | "micro" | "small" | undefined;
1452
+ readonly instance_type?: "nano" | "micro" | "standard" | "large" | "xlarge" | "small" | undefined;
1271
1453
  readonly cron_schedule?: string | undefined;
1272
1454
  readonly regions?: readonly ("fsn1" | "nbg1" | "hel1" | "ash1" | "hil1")[] | undefined;
1273
1455
  readonly scale_to_zero?: boolean | undefined;
1274
1456
  readonly idle_timeout_seconds?: number | undefined;
1275
- readonly min_replicas?: number | undefined;
1457
+ readonly min_instances?: number | undefined;
1276
1458
  }[] | undefined;
1277
1459
  readonly region?: "fsn1" | "nbg1" | "hel1" | "ash1" | "hil1" | undefined;
1278
1460
  readonly env?: {
@@ -1286,6 +1468,8 @@ export declare const SylphxManifest: Schema.Struct<{
1286
1468
  };
1287
1469
  } | undefined;
1288
1470
  readonly build?: {
1471
+ readonly context?: string | undefined;
1472
+ readonly strategy?: "auto" | "dockerfile" | "buildpack" | "nixpacks" | undefined;
1289
1473
  readonly dockerfile?: string | undefined;
1290
1474
  readonly buildpack?: "auto" | "static" | "ruby" | "node" | "python" | "dockerfile" | undefined;
1291
1475
  readonly docker_context?: string | undefined;
@@ -1307,21 +1491,47 @@ export declare const SylphxManifest: Schema.Struct<{
1307
1491
  database: Schema.optional<Schema.Struct<{
1308
1492
  /** Capability-specific engine. PostgreSQL is the first supported database engine. */
1309
1493
  engine: Schema.optional<Schema.Literal<["postgres"]>>;
1310
- /** CNPG tier; IMMUTABLE after creation. */
1311
- tier: Schema.Literal<["nano", "micro", "standard", "large", "xl"]>;
1494
+ /** Product tier; IMMUTABLE after creation. */
1495
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
1312
1496
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1313
1497
  version: Schema.optional<Schema.Literal<["15", "16", "17"]>>;
1314
- /** Enable CNPG read-replica(s). */
1315
- replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1498
+ /** Optional managed read replicas. */
1499
+ read_replicas: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1316
1500
  /** Branch-per-preview (P0 gap #4 sibling). */
1317
1501
  branch_on_preview: Schema.optional<typeof Schema.Boolean>;
1318
1502
  }>>;
1503
+ kv: Schema.optional<Schema.Struct<{
1504
+ engine: Schema.optionalWith<typeof Schema.Never, {
1505
+ exact: true;
1506
+ }>;
1507
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
1508
+ storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1509
+ }>>;
1319
1510
  search: Schema.optional<Schema.Struct<{
1320
- /** Capability-specific engine. Typesense is the first supported search engine. */
1321
- engine: Schema.optional<Schema.Literal<["typesense"]>>;
1322
- tier: Schema.Literal<["micro", "standard"]>;
1511
+ engine: Schema.optionalWith<typeof Schema.Never, {
1512
+ exact: true;
1513
+ }>;
1514
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
1515
+ storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1516
+ }>>;
1517
+ volume: Schema.optional<Schema.Struct<{
1518
+ tier: Schema.Literal<["nano", "micro", "standard", "large", "xl", "hobby", "starter", "pro", "business", "enterprise", "enterprise-2x", "enterprise-4x"]>;
1323
1519
  storage_gb: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1324
- nodes: Schema.optional<Schema.filter<Schema.filter<typeof Schema.Number>>>;
1520
+ /**
1521
+ * Public sharing intent. The platform maps this to the best backend storage
1522
+ * class without exposing implementation details.
1523
+ */
1524
+ sharing: Schema.optional<Schema.Literal<["single-writer", "shared"]>>;
1525
+ /**
1526
+ * Optional env-facing path metadata. This does not mount the volume into an
1527
+ * app service by itself; service/task mounts stay explicit bindings.
1528
+ */
1529
+ mount_path: Schema.optional<Schema.filter<typeof Schema.String>>;
1530
+ /**
1531
+ * Binding role controls env var prefix. Example: role="workspace" emits
1532
+ * WORKSPACE_VOLUME_ID for a volume binding.
1533
+ */
1534
+ role: Schema.optional<Schema.filter<Schema.filter<Schema.filter<typeof Schema.String>>>>;
1325
1535
  }>>;
1326
1536
  }>>;
1327
1537
  ci: Schema.optional<Schema.Struct<{
@@ -1345,13 +1555,13 @@ export type SylphxManifest = typeof SylphxManifest.Type;
1345
1555
  * the schema above.
1346
1556
  */
1347
1557
  export interface ResolvedScaleToZero {
1348
- /** Whether the service opts into KEDA-managed scale-to-zero. */
1558
+ /** Whether the service opts into platform-managed scale-to-zero. */
1349
1559
  scaleToZero: boolean;
1350
- /** KEDA `cooldownPeriod` (seconds). Meaningful only when scaleToZero=true. */
1560
+ /** Idle cooldown in seconds. Meaningful only when scaleToZero=true. */
1351
1561
  idleTimeoutSeconds: number;
1352
- /** KEDA `minReplicaCount`. 0 iff `scaleToZero=true` and caller didn't pin a warm floor. */
1562
+ /** Minimum warm instances. 0 iff `scaleToZero=true` and caller didn't pin a warm floor. */
1353
1563
  minReplicas: number;
1354
- /** KEDA `maxReplicaCount`. Upper bound for horizontal scaling. */
1564
+ /** Upper bound for horizontal scaling. */
1355
1565
  maxReplicas: number;
1356
1566
  }
1357
1567
  /**
@@ -1362,11 +1572,11 @@ export interface ResolvedScaleToZero {
1362
1572
  export declare const SCALE_TO_ZERO_DEFAULTS: {
1363
1573
  /** Idle timeout in seconds when caller didn't provide one. */
1364
1574
  readonly idleTimeoutSeconds: 300;
1365
- /** Min replicas when the service opted into scale-to-zero. */
1575
+ /** Min instances when the service opted into scale-to-zero. */
1366
1576
  readonly minReplicasScaleToZero: 0;
1367
- /** Min replicas when the service did NOT opt in (pinned warm). */
1577
+ /** Min instances when the service did NOT opt in (pinned warm). */
1368
1578
  readonly minReplicasWarm: 1;
1369
- /** Max replicas fallback when neither manifest nor compute profile specify. */
1579
+ /** Max instances fallback when neither manifest nor compute profile specify. */
1370
1580
  readonly maxReplicasDefault: 10;
1371
1581
  };
1372
1582
  /**
@@ -1378,7 +1588,7 @@ export declare const SCALE_TO_ZERO_DEFAULTS: {
1378
1588
  * Pass `null`/`undefined` for "no scale-to-zero".
1379
1589
  * @param explicitMax - Optional per-tier ceiling (e.g. resolved from
1380
1590
  * compute profile). Takes precedence over the static
1381
- * 10-replica fallback but not over an input.maxReplicas.
1591
+ * 10-instance fallback but not over an input.maxReplicas.
1382
1592
  */
1383
1593
  export declare function resolveScaleToZeroDefaults(input: {
1384
1594
  scaleToZero?: boolean;