@vibesdotdev/infra-core 0.0.2 → 1.0.0-rc.5

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 (319) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +27 -1
  3. package/dist/bootstrap/seed.descriptor.d.ts +1 -1
  4. package/dist/bootstrap/seed.descriptor.d.ts.map +1 -1
  5. package/dist/bootstrap/seed.descriptor.js +1 -1
  6. package/dist/bootstrap/seed.descriptor.js.map +1 -1
  7. package/dist/bootstrap/seed.impl-shape.d.ts +1 -1
  8. package/dist/bootstrap/seed.impl-shape.d.ts.map +1 -1
  9. package/dist/bootstrap/seed.kind.d.ts +1 -3
  10. package/dist/bootstrap/seed.kind.d.ts.map +1 -1
  11. package/dist/bootstrap/seed.kind.js +17 -4
  12. package/dist/bootstrap/seed.kind.js.map +1 -1
  13. package/dist/bootstrap/seed.runner.d.ts +9 -2
  14. package/dist/bootstrap/seed.runner.d.ts.map +1 -1
  15. package/dist/bootstrap/seed.runner.js +37 -18
  16. package/dist/bootstrap/seed.runner.js.map +1 -1
  17. package/dist/capped-id.d.ts +19 -0
  18. package/dist/capped-id.d.ts.map +1 -0
  19. package/dist/capped-id.js +64 -0
  20. package/dist/capped-id.js.map +1 -0
  21. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.d.ts +23 -0
  22. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.d.ts.map +1 -0
  23. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.js +33 -0
  24. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.js.map +1 -0
  25. package/dist/cli/generate/artifact/artifact.cli-command.impl.d.ts +24 -0
  26. package/dist/cli/generate/artifact/artifact.cli-command.impl.d.ts.map +1 -0
  27. package/dist/cli/generate/artifact/artifact.cli-command.impl.js +73 -0
  28. package/dist/cli/generate/artifact/artifact.cli-command.impl.js.map +1 -0
  29. package/dist/cli/generate/context.d.ts +17 -0
  30. package/dist/cli/generate/context.d.ts.map +1 -0
  31. package/dist/cli/generate/context.js +24 -0
  32. package/dist/cli/generate/context.js.map +1 -0
  33. package/dist/cli/generate/generate/generate.cli-command.descriptor.d.ts +30 -0
  34. package/dist/cli/generate/generate/generate.cli-command.descriptor.d.ts.map +1 -0
  35. package/dist/cli/generate/generate/generate.cli-command.descriptor.js +25 -0
  36. package/dist/cli/generate/generate/generate.cli-command.descriptor.js.map +1 -0
  37. package/dist/cli/generate/generate/generate.cli-command.impl.d.ts +25 -0
  38. package/dist/cli/generate/generate/generate.cli-command.impl.d.ts.map +1 -0
  39. package/dist/cli/generate/generate/generate.cli-command.impl.js +64 -0
  40. package/dist/cli/generate/generate/generate.cli-command.impl.js.map +1 -0
  41. package/dist/cli/generate/generate-core.d.ts +51 -0
  42. package/dist/cli/generate/generate-core.d.ts.map +1 -0
  43. package/dist/cli/generate/generate-core.js +172 -0
  44. package/dist/cli/generate/generate-core.js.map +1 -0
  45. package/dist/cli/generate/index.d.ts +5 -0
  46. package/dist/cli/generate/index.d.ts.map +1 -0
  47. package/dist/cli/generate/index.js +5 -0
  48. package/dist/cli/generate/index.js.map +1 -0
  49. package/dist/credentials/resolve.d.ts +82 -22
  50. package/dist/credentials/resolve.d.ts.map +1 -1
  51. package/dist/credentials/resolve.js +251 -77
  52. package/dist/credentials/resolve.js.map +1 -1
  53. package/dist/deployment-environment.d.ts +30 -0
  54. package/dist/deployment-environment.d.ts.map +1 -0
  55. package/dist/deployment-environment.js +53 -0
  56. package/dist/deployment-environment.js.map +1 -0
  57. package/dist/deployment.d.ts +8 -4
  58. package/dist/deployment.d.ts.map +1 -1
  59. package/dist/deployment.js +30 -0
  60. package/dist/deployment.js.map +1 -1
  61. package/dist/doks/cloud/base.d.ts +49 -0
  62. package/dist/doks/cloud/base.d.ts.map +1 -0
  63. package/dist/doks/cloud/base.js +138 -0
  64. package/dist/doks/cloud/base.js.map +1 -0
  65. package/dist/doks/cloud/factory.d.ts +18 -0
  66. package/dist/doks/cloud/factory.d.ts.map +1 -0
  67. package/dist/doks/cloud/factory.js +22 -0
  68. package/dist/doks/cloud/factory.js.map +1 -0
  69. package/dist/doks/cloud/index.d.ts +5 -0
  70. package/dist/doks/cloud/index.d.ts.map +1 -0
  71. package/dist/doks/cloud/index.js +4 -0
  72. package/dist/doks/cloud/index.js.map +1 -0
  73. package/dist/doks/types.d.ts +95 -0
  74. package/dist/doks/types.d.ts.map +1 -0
  75. package/dist/doks/types.js +14 -0
  76. package/dist/doks/types.js.map +1 -0
  77. package/dist/generate/index.d.ts +29 -0
  78. package/dist/generate/index.d.ts.map +1 -0
  79. package/dist/generate/index.js +28 -0
  80. package/dist/generate/index.js.map +1 -0
  81. package/dist/generate/infra-generate.plugin.d.ts +3 -0
  82. package/dist/generate/infra-generate.plugin.d.ts.map +1 -0
  83. package/dist/generate/infra-generate.plugin.js +23 -0
  84. package/dist/generate/infra-generate.plugin.js.map +1 -0
  85. package/dist/generate/plugin.d.ts +2 -0
  86. package/dist/generate/plugin.d.ts.map +1 -0
  87. package/dist/generate/plugin.js +2 -0
  88. package/dist/generate/plugin.js.map +1 -0
  89. package/dist/heartbeat/cron-heartbeat.d.ts +97 -0
  90. package/dist/heartbeat/cron-heartbeat.d.ts.map +1 -0
  91. package/dist/heartbeat/cron-heartbeat.js +200 -0
  92. package/dist/heartbeat/cron-heartbeat.js.map +1 -0
  93. package/dist/index.d.ts +35 -21
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +28 -14
  96. package/dist/index.js.map +1 -1
  97. package/dist/infra.plugin.d.ts +1 -1
  98. package/dist/infra.plugin.d.ts.map +1 -1
  99. package/dist/infra.plugin.js +62 -12
  100. package/dist/infra.plugin.js.map +1 -1
  101. package/dist/kinds/alerts.kind.d.ts +64 -25
  102. package/dist/kinds/alerts.kind.d.ts.map +1 -1
  103. package/dist/kinds/alerts.kind.js +43 -16
  104. package/dist/kinds/alerts.kind.js.map +1 -1
  105. package/dist/kinds/artifact.kind.d.ts +58 -10
  106. package/dist/kinds/artifact.kind.d.ts.map +1 -1
  107. package/dist/kinds/artifact.kind.js +26 -9
  108. package/dist/kinds/artifact.kind.js.map +1 -1
  109. package/dist/kinds/billing.kind.d.ts +88 -0
  110. package/dist/kinds/billing.kind.d.ts.map +1 -0
  111. package/dist/kinds/billing.kind.js +48 -0
  112. package/dist/kinds/billing.kind.js.map +1 -0
  113. package/dist/kinds/build-job.kind.d.ts +381 -0
  114. package/dist/kinds/build-job.kind.d.ts.map +1 -0
  115. package/dist/kinds/build-job.kind.js +216 -0
  116. package/dist/kinds/build-job.kind.js.map +1 -0
  117. package/dist/kinds/cache.kind.d.ts +39 -92
  118. package/dist/kinds/cache.kind.d.ts.map +1 -1
  119. package/dist/kinds/cache.kind.js +26 -51
  120. package/dist/kinds/cache.kind.js.map +1 -1
  121. package/dist/kinds/cluster.kind.d.ts +154 -0
  122. package/dist/kinds/cluster.kind.d.ts.map +1 -0
  123. package/dist/kinds/cluster.kind.js +99 -0
  124. package/dist/kinds/cluster.kind.js.map +1 -0
  125. package/dist/kinds/compute-source.kind.d.ts +138 -0
  126. package/dist/kinds/compute-source.kind.d.ts.map +1 -0
  127. package/dist/kinds/compute-source.kind.js +145 -0
  128. package/dist/kinds/compute-source.kind.js.map +1 -0
  129. package/dist/kinds/compute-sources.descriptors.d.ts +45 -0
  130. package/dist/kinds/compute-sources.descriptors.d.ts.map +1 -0
  131. package/dist/kinds/compute-sources.descriptors.js +93 -0
  132. package/dist/kinds/compute-sources.descriptors.js.map +1 -0
  133. package/dist/kinds/container-registry.kind.d.ts +62 -0
  134. package/dist/kinds/container-registry.kind.d.ts.map +1 -0
  135. package/dist/kinds/container-registry.kind.js +47 -0
  136. package/dist/kinds/container-registry.kind.js.map +1 -0
  137. package/dist/kinds/database-migrator.kind.d.ts +6 -0
  138. package/dist/kinds/database-migrator.kind.d.ts.map +1 -0
  139. package/dist/kinds/database-migrator.kind.js +28 -0
  140. package/dist/kinds/database-migrator.kind.js.map +1 -0
  141. package/dist/kinds/database.kind.d.ts +114 -93
  142. package/dist/kinds/database.kind.d.ts.map +1 -1
  143. package/dist/kinds/database.kind.js +93 -54
  144. package/dist/kinds/database.kind.js.map +1 -1
  145. package/dist/kinds/deployment-provider.kind.d.ts +5 -0
  146. package/dist/kinds/deployment-provider.kind.d.ts.map +1 -0
  147. package/dist/kinds/deployment-provider.kind.js +11 -0
  148. package/dist/kinds/deployment-provider.kind.js.map +1 -0
  149. package/dist/kinds/discovery.d.ts +5 -12
  150. package/dist/kinds/discovery.d.ts.map +1 -1
  151. package/dist/kinds/discovery.js +5 -17
  152. package/dist/kinds/discovery.js.map +1 -1
  153. package/dist/kinds/dns.kind.d.ts +162 -0
  154. package/dist/kinds/dns.kind.d.ts.map +1 -0
  155. package/dist/kinds/dns.kind.js +54 -0
  156. package/dist/kinds/dns.kind.js.map +1 -0
  157. package/dist/kinds/drift.kind.d.ts +115 -0
  158. package/dist/kinds/drift.kind.d.ts.map +1 -0
  159. package/dist/kinds/drift.kind.js +60 -0
  160. package/dist/kinds/drift.kind.js.map +1 -0
  161. package/dist/kinds/edge-tls.kind.d.ts +194 -0
  162. package/dist/kinds/edge-tls.kind.d.ts.map +1 -0
  163. package/dist/kinds/edge-tls.kind.js +58 -0
  164. package/dist/kinds/edge-tls.kind.js.map +1 -0
  165. package/dist/kinds/firewall.kind.d.ts +92 -0
  166. package/dist/kinds/firewall.kind.d.ts.map +1 -0
  167. package/dist/kinds/firewall.kind.js +59 -0
  168. package/dist/kinds/firewall.kind.js.map +1 -0
  169. package/dist/kinds/git-hosting.kind.d.ts +36 -38
  170. package/dist/kinds/git-hosting.kind.d.ts.map +1 -1
  171. package/dist/kinds/git-hosting.kind.js +21 -32
  172. package/dist/kinds/git-hosting.kind.js.map +1 -1
  173. package/dist/kinds/index.d.ts +40 -15
  174. package/dist/kinds/index.d.ts.map +1 -1
  175. package/dist/kinds/index.js +39 -14
  176. package/dist/kinds/index.js.map +1 -1
  177. package/dist/kinds/inventory.kind.d.ts +327 -0
  178. package/dist/kinds/inventory.kind.d.ts.map +1 -0
  179. package/dist/kinds/inventory.kind.js +188 -0
  180. package/dist/kinds/inventory.kind.js.map +1 -0
  181. package/dist/kinds/load-balancer.kind.d.ts +135 -0
  182. package/dist/kinds/load-balancer.kind.d.ts.map +1 -0
  183. package/dist/kinds/load-balancer.kind.js +71 -0
  184. package/dist/kinds/load-balancer.kind.js.map +1 -0
  185. package/dist/kinds/logs.kind.d.ts +74 -3
  186. package/dist/kinds/logs.kind.d.ts.map +1 -1
  187. package/dist/kinds/logs.kind.js +26 -17
  188. package/dist/kinds/logs.kind.js.map +1 -1
  189. package/dist/kinds/nfs.kind.d.ts +67 -0
  190. package/dist/kinds/nfs.kind.d.ts.map +1 -0
  191. package/dist/kinds/nfs.kind.js +45 -0
  192. package/dist/kinds/nfs.kind.js.map +1 -0
  193. package/dist/kinds/node-pool.kind.d.ts +134 -0
  194. package/dist/kinds/node-pool.kind.d.ts.map +1 -0
  195. package/dist/kinds/node-pool.kind.js +88 -0
  196. package/dist/kinds/node-pool.kind.js.map +1 -0
  197. package/dist/kinds/object-storage.kind.d.ts +50 -24
  198. package/dist/kinds/object-storage.kind.d.ts.map +1 -1
  199. package/dist/kinds/object-storage.kind.js +40 -23
  200. package/dist/kinds/object-storage.kind.js.map +1 -1
  201. package/dist/kinds/observability.kind.d.ts +104 -6
  202. package/dist/kinds/observability.kind.d.ts.map +1 -1
  203. package/dist/kinds/observability.kind.js +67 -9
  204. package/dist/kinds/observability.kind.js.map +1 -1
  205. package/dist/kinds/package-registry.kind.d.ts +139 -33
  206. package/dist/kinds/package-registry.kind.d.ts.map +1 -1
  207. package/dist/kinds/package-registry.kind.js +55 -25
  208. package/dist/kinds/package-registry.kind.js.map +1 -1
  209. package/dist/kinds/queue.kind.d.ts +67 -63
  210. package/dist/kinds/queue.kind.d.ts.map +1 -1
  211. package/dist/kinds/queue.kind.js +55 -33
  212. package/dist/kinds/queue.kind.js.map +1 -1
  213. package/dist/kinds/read-descriptor.d.ts +15 -0
  214. package/dist/kinds/read-descriptor.d.ts.map +1 -0
  215. package/dist/kinds/read-descriptor.js +11 -0
  216. package/dist/kinds/read-descriptor.js.map +1 -0
  217. package/dist/kinds/rum.kind.d.ts +36 -6
  218. package/dist/kinds/rum.kind.d.ts.map +1 -1
  219. package/dist/kinds/rum.kind.js +6 -7
  220. package/dist/kinds/rum.kind.js.map +1 -1
  221. package/dist/kinds/sandbox.kind.d.ts +136 -36
  222. package/dist/kinds/sandbox.kind.d.ts.map +1 -1
  223. package/dist/kinds/sandbox.kind.js +80 -34
  224. package/dist/kinds/sandbox.kind.js.map +1 -1
  225. package/dist/kinds/select-compute-source.d.ts +72 -0
  226. package/dist/kinds/select-compute-source.d.ts.map +1 -0
  227. package/dist/kinds/select-compute-source.js +170 -0
  228. package/dist/kinds/select-compute-source.js.map +1 -0
  229. package/dist/kinds/service-release.kind.d.ts +771 -0
  230. package/dist/kinds/service-release.kind.d.ts.map +1 -0
  231. package/dist/kinds/service-release.kind.js +676 -0
  232. package/dist/kinds/service-release.kind.js.map +1 -0
  233. package/dist/kinds/spend-guard.kind.d.ts +40 -0
  234. package/dist/kinds/spend-guard.kind.d.ts.map +1 -0
  235. package/dist/kinds/spend-guard.kind.js +133 -0
  236. package/dist/kinds/spend-guard.kind.js.map +1 -0
  237. package/dist/kinds/utilization.kind.d.ts +88 -0
  238. package/dist/kinds/utilization.kind.d.ts.map +1 -0
  239. package/dist/kinds/utilization.kind.js +62 -0
  240. package/dist/kinds/utilization.kind.js.map +1 -0
  241. package/dist/kinds/volume.kind.d.ts +54 -0
  242. package/dist/kinds/volume.kind.d.ts.map +1 -0
  243. package/dist/kinds/volume.kind.js +39 -0
  244. package/dist/kinds/volume.kind.js.map +1 -0
  245. package/dist/kinds/vpc.kind.d.ts +61 -0
  246. package/dist/kinds/vpc.kind.d.ts.map +1 -0
  247. package/dist/kinds/vpc.kind.js +51 -0
  248. package/dist/kinds/vpc.kind.js.map +1 -0
  249. package/dist/kinds/web-app.kind.d.ts +115 -45
  250. package/dist/kinds/web-app.kind.d.ts.map +1 -1
  251. package/dist/kinds/web-app.kind.js +69 -42
  252. package/dist/kinds/web-app.kind.js.map +1 -1
  253. package/dist/kinds/worker.kind.d.ts +293 -188
  254. package/dist/kinds/worker.kind.d.ts.map +1 -1
  255. package/dist/kinds/worker.kind.js +45 -123
  256. package/dist/kinds/worker.kind.js.map +1 -1
  257. package/dist/schemas/database-migration.d.ts +173 -0
  258. package/dist/schemas/database-migration.d.ts.map +1 -0
  259. package/dist/schemas/database-migration.js +88 -0
  260. package/dist/schemas/database-migration.js.map +1 -0
  261. package/dist/schemas/deployment-environment.d.ts +11 -0
  262. package/dist/schemas/deployment-environment.d.ts.map +1 -0
  263. package/dist/schemas/deployment-environment.js +9 -0
  264. package/dist/schemas/deployment-environment.js.map +1 -0
  265. package/dist/schemas/deployment-provider.d.ts +336 -0
  266. package/dist/schemas/deployment-provider.d.ts.map +1 -0
  267. package/dist/schemas/deployment-provider.js +198 -0
  268. package/dist/schemas/deployment-provider.js.map +1 -0
  269. package/dist/schemas/log-stream.d.ts +27 -0
  270. package/dist/schemas/log-stream.d.ts.map +1 -0
  271. package/dist/schemas/log-stream.js +31 -0
  272. package/dist/schemas/log-stream.js.map +1 -0
  273. package/dist/schemas/spend-guard.d.ts +155 -0
  274. package/dist/schemas/spend-guard.d.ts.map +1 -0
  275. package/dist/schemas/spend-guard.js +61 -0
  276. package/dist/schemas/spend-guard.js.map +1 -0
  277. package/dist/schemas.d.ts +190 -20
  278. package/dist/schemas.d.ts.map +1 -1
  279. package/dist/schemas.js +137 -31
  280. package/dist/schemas.js.map +1 -1
  281. package/dist/service.d.ts +87 -0
  282. package/dist/service.d.ts.map +1 -0
  283. package/dist/service.js +199 -0
  284. package/dist/service.js.map +1 -0
  285. package/dist/settle-work.d.ts +20 -0
  286. package/dist/settle-work.d.ts.map +1 -0
  287. package/dist/settle-work.js +22 -0
  288. package/dist/settle-work.js.map +1 -0
  289. package/dist/web-app-projection.d.ts +132 -0
  290. package/dist/web-app-projection.d.ts.map +1 -0
  291. package/dist/web-app-projection.js +93 -0
  292. package/dist/web-app-projection.js.map +1 -0
  293. package/package.json +87 -36
  294. package/src/bootstrap/index.ts +0 -15
  295. package/src/bootstrap/seed.descriptor.ts +0 -24
  296. package/src/bootstrap/seed.impl-shape.ts +0 -5
  297. package/src/bootstrap/seed.kind.ts +0 -26
  298. package/src/bootstrap/seed.runner.ts +0 -87
  299. package/src/credentials/resolve.ts +0 -205
  300. package/src/deployment.ts +0 -57
  301. package/src/index.ts +0 -149
  302. package/src/infra.plugin.ts +0 -54
  303. package/src/kinds/alerts.kind.ts +0 -164
  304. package/src/kinds/artifact.kind.ts +0 -96
  305. package/src/kinds/cache.kind.ts +0 -104
  306. package/src/kinds/database.kind.ts +0 -120
  307. package/src/kinds/discovery.ts +0 -26
  308. package/src/kinds/git-hosting.kind.ts +0 -100
  309. package/src/kinds/index.ts +0 -139
  310. package/src/kinds/logs.kind.ts +0 -104
  311. package/src/kinds/object-storage.kind.ts +0 -101
  312. package/src/kinds/observability.kind.ts +0 -178
  313. package/src/kinds/package-registry.kind.ts +0 -95
  314. package/src/kinds/queue.kind.ts +0 -102
  315. package/src/kinds/rum.kind.ts +0 -135
  316. package/src/kinds/sandbox.kind.ts +0 -115
  317. package/src/kinds/web-app.kind.ts +0 -103
  318. package/src/kinds/worker.kind.ts +0 -203
  319. package/src/schemas.ts +0 -127
@@ -3,27 +3,51 @@
3
3
  *
4
4
  * Describes a background worker process.
5
5
  *
6
- * Schema shape: strict common base + `config` discriminated union.
6
+ * Schema shape: strict common base + an open, adapter-keyed `config`.
7
7
  *
8
8
  * - The base defines fields universal across adapters: id/kind/name +
9
9
  * the worker shape (entrypoint, queues, concurrency, scaling, env).
10
10
  * - Adapter-specific fields (namespace, image, healthPort, …) live under
11
- * `config`. Each adapter package defines its own concrete schema.
11
+ * `config`, keyed by a non-empty `adapter` discriminator. Each adapter
12
+ * package defines and parses its own concrete schema (DOKS deployment and
13
+ * DigitalOcean Functions configs live in
14
+ * `@vibesdotdev/integrations-digitalocean`; Cloudflare Workers' in
15
+ * `@vibesdotdev/integrations-cloudflare`); this kind names no provider,
16
+ * so a descriptor contributed by an adapter it has never heard of still
17
+ * parses and the adapter validates its own grammar at resolution time.
12
18
  */
13
19
  import * as z from 'zod/v4';
14
- import { createRuntimeKind } from '@vibesdotdev/runtime/factory/kind';
15
- import { RuntimeDescriptorSchema } from '@vibesdotdev/runtime/schemas/descriptor';
20
+ import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
21
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
22
+ import { readKindDescriptor } from "./read-descriptor.js";
23
+ import { RuntimeScopeSchema } from '@vibesdotdev/kernel/schemas/scope';
16
24
  import { deploymentEnvRequirementSchema } from "../schemas.js";
17
- import { INFRA_DISCOVERY_PATTERN, extractStem } from "./discovery.js";
25
+ import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
18
26
  export const WorkerScalingSchema = z.object({
19
27
  min: z.number().int().nonnegative().default(1),
20
28
  max: z.number().int().positive().default(1),
21
29
  cpu: z.string().optional(),
22
30
  memory: z.string().optional()
23
31
  });
32
+ export const KubernetesTolerationSchema = z.object({
33
+ key: z.string().min(1).optional(),
34
+ operator: z.enum(['Exists', 'Equal']).optional(),
35
+ value: z.string().optional(),
36
+ effect: z.enum(['NoSchedule', 'PreferNoSchedule', 'NoExecute']).optional()
37
+ });
38
+ export const WorkerHostedRuntimeSchema = z.object({
39
+ /**
40
+ * Runtime scope this worker process hosts. This is distinct from the
41
+ * descriptor's own top-level `hardware` field, which scopes the infra
42
+ * descriptor/resolver itself.
43
+ */
44
+ scope: RuntimeScopeSchema,
45
+ /** Queue/runtime adapter that this host should resolve explicitly, when any. */
46
+ adapter: z.string().min(1).optional()
47
+ });
24
48
  const WorkerBaseSchema = RuntimeDescriptorSchema.extend({
25
49
  kind: z.literal('infra/worker'),
26
- /** Path to worker entrypoint (e.g., 'packages/workers/src/ai/entrypoint.ts'). */
50
+ /** Path to worker entrypoint (e.g., 'workers/src/ai/entrypoint.ts'). */
27
51
  entrypoint: z.string().min(1).optional(),
28
52
  /** Queue names this worker consumes from. */
29
53
  queues: z.array(z.string().min(1)).optional(),
@@ -31,141 +55,39 @@ const WorkerBaseSchema = RuntimeDescriptorSchema.extend({
31
55
  concurrency: z.number().int().positive().optional(),
32
56
  /** Scaling configuration. */
33
57
  scaling: WorkerScalingSchema.optional(),
58
+ /** Runtime hosted by this worker process. */
59
+ runtime: WorkerHostedRuntimeSchema.optional(),
34
60
  /** Environment variable requirements. */
35
61
  env: z.array(deploymentEnvRequirementSchema).optional()
36
62
  });
37
- export const DoksDeploymentWorkerConfigSchema = z.object({
38
- /** Kubernetes namespace (default: vibes). */
39
- namespace: z.string().min(1).default('vibes'),
40
- /** Container image (default: vibes/{id}:latest). */
41
- image: z.string().min(1).optional(),
42
- /** Health probe port (default: 8080). */
43
- healthPort: z.number().int().positive().default(8080),
44
- /** Health probe path (default: /healthz). */
45
- healthPath: z.string().min(1).default('/healthz'),
46
- /** Readiness probe path (default: /readyz). */
47
- readyPath: z.string().min(1).default('/readyz')
48
- });
49
- export const CloudflareWorkersWorkerConfigSchema = z.object({
50
- /** Cloudflare Workers script name (e.g., "vibes-jobs"). */
51
- cfWorkerName: z.string().min(1),
52
- /** Path to the `_worker.js` entry point relative to outputDir. */
53
- workerEntry: z.string().min(1).default('_worker.js'),
54
- /** Compatibility date for wrangler. */
55
- compatibilityDate: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
56
- /** Compatibility flags for wrangler. */
57
- compatibilityFlags: z.array(z.string()).default(['nodejs_compat']),
58
- /** Environment variables to include. */
59
- env: z.record(z.string(), z.string()).default({}),
60
- /** Cloudflare Secrets Store ID for secret bindings. */
61
- secretsStoreId: z.string().min(1).optional(),
62
- /**
63
- * Detailed queue-consumer config. When present, these override the
64
- * coarse `queues: string[]` field on the base descriptor and let
65
- * declarations control batch size, retries, and dead-letter routing.
66
- */
67
- consumers: z
68
- .array(z.object({
69
- queue: z.string().min(1),
70
- maxBatchSize: z.number().int().positive().default(10),
71
- maxRetries: z.number().int().min(0).default(3),
72
- deadLetterQueue: z.string().optional()
73
- }))
74
- .default([]),
75
- /** Durable Object class bindings. */
76
- durableObjects: z
77
- .array(z.object({
78
- binding: z.string().regex(/^[_A-Z0-9]+$/),
79
- className: z.string().min(1),
80
- scriptName: z.string().min(1).optional()
81
- }))
82
- .default([]),
83
- /** Durable Object migrations. */
84
- migrations: z
85
- .array(z.object({
86
- tag: z.string().min(1),
87
- newClasses: z.array(z.string().min(1)).optional(),
88
- renamedClasses: z
89
- .array(z.object({ from: z.string().min(1), to: z.string().min(1) }))
90
- .optional(),
91
- deletedClasses: z.array(z.string().min(1)).optional(),
92
- newSqliteClasses: z.array(z.string().min(1)).optional()
93
- }))
94
- .default([]),
95
- /** Service bindings — call other Workers from this Worker. */
96
- services: z
97
- .array(z.object({
98
- binding: z.string().regex(/^[_A-Z0-9]+$/),
99
- service: z.string().min(1),
100
- environment: z.string().min(1).optional()
101
- }))
102
- .default([]),
103
- /** D1 database bindings. */
104
- d1Databases: z
105
- .array(z.object({
106
- binding: z.string().regex(/^[_A-Z0-9]+$/),
107
- databaseName: z.string().min(1),
108
- databaseId: z.string().min(1)
109
- }))
110
- .default([]),
111
- /** KV namespace bindings. */
112
- kvNamespaces: z
113
- .array(z.object({
114
- binding: z.string().min(1),
115
- id: z.string().min(1)
116
- }))
117
- .default([]),
118
- /** R2 bucket bindings. */
119
- r2Buckets: z
120
- .array(z.object({
121
- binding: z.string().min(1),
122
- bucketName: z.string().min(1)
123
- }))
124
- .default([]),
125
- /** Queue producer bindings (worker can also produce to queues). */
126
- queueProducers: z
127
- .array(z.object({
128
- queue: z.string().min(1),
129
- binding: z.string().min(1)
130
- }))
131
- .default([]),
132
- /** Enable smart placement. */
133
- smartPlacement: z.boolean().default(false),
134
- /**
135
- * Whether this is a job-consumer Worker. When true, deploy step
136
- * auto-injects the JOB_RESULT_STORE Durable Object binding +
137
- * initial migration via `generateJobConsumerWorkerConfig` from
138
- * `@vibesdotdev/infra-cloudflare`.
139
- */
140
- jobConsumer: z.boolean().default(false)
63
+ /**
64
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
65
+ * adapter package defines and parses its own config schema; this kind names
66
+ * no provider, so a config for any adapter — including one contributed by a
67
+ * user plugin — parses here, and the adapter validates its own grammar.
68
+ */
69
+ export const WorkerConfigSchema = z.looseObject({
70
+ adapter: z.string().min(1)
141
71
  });
142
- export const WorkerConfigSchema = z.union([
143
- DoksDeploymentWorkerConfigSchema.extend({ adapter: z.literal('doks-deployment') }),
144
- CloudflareWorkersWorkerConfigSchema.extend({ adapter: z.literal('cloudflare-workers') })
145
- ]);
146
72
  export const WorkerDescriptorSchema = WorkerBaseSchema.extend({
147
- /**
148
- * Adapter-specific configuration. Discriminated union — each adapter
149
- * package defines its own config schema under its discriminator key.
150
- */
73
+ /** Adapter-specific configuration, parsed by the adapter that owns it. */
151
74
  config: WorkerConfigSchema.optional()
152
75
  });
153
76
  class DefaultWorkerImplementation {
154
77
  descriptor;
155
78
  context;
79
+ /** The descriptor as this kind's schema reads it. */
80
+ config;
156
81
  constructor(descriptor, context) {
157
82
  this.descriptor = descriptor;
158
83
  this.context = context;
159
- }
160
- get config() {
161
- return this.descriptor;
84
+ this.config = readKindDescriptor(WorkerDescriptorSchema, descriptor);
162
85
  }
163
86
  }
164
87
  export const workerKind = createRuntimeKind({
165
88
  id: 'infra/worker',
166
89
  descriptorSchema: WorkerDescriptorSchema,
167
90
  defaultImplementation: DefaultWorkerImplementation,
168
- discoveryPattern: INFRA_DISCOVERY_PATTERN,
169
- extractStem
91
+ discoveryPatterns: INFRA_DISCOVERY_PATTERNS
170
92
  });
171
93
  //# sourceMappingURL=worker.kind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.kind.js","sourceRoot":"","sources":["../../src/kinds/worker.kind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.kind.js","sourceRoot":"","sources":["../../src/kinds/worker.kind.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Contracts of the `infra/database-migrator` kind: the targets a migrator
3
+ * serves, the operations a session runs, and the implementation interface
4
+ * every engine registers.
5
+ */
6
+ import * as z from 'zod/v4';
7
+ import { type JsonObject } from '@vibesdotdev/kernel/schemas/json';
8
+ /** Where a migration runs: the developer's local emulation or the provider's live database. */
9
+ export declare const DatabaseMigrationLocationSchema: z.ZodEnum<{
10
+ local: "local";
11
+ remote: "remote";
12
+ }>;
13
+ export type DatabaseMigrationLocation = z.infer<typeof DatabaseMigrationLocationSchema>;
14
+ /** The migration files one database declares: a format id and its directory (absolute). */
15
+ export declare const DatabaseMigrationSourceSchema: z.ZodObject<{
16
+ format: z.ZodString;
17
+ directory: z.ZodString;
18
+ }, z.core.$strip>;
19
+ export type DatabaseMigrationSource = z.infer<typeof DatabaseMigrationSourceSchema>;
20
+ /** One database an app declares, as the migrator that serves it describes it. */
21
+ export declare const DatabaseMigrationTargetSchema: z.ZodObject<{
22
+ migrator: z.ZodString;
23
+ database: z.ZodString;
24
+ binding: z.ZodOptional<z.ZodString>;
25
+ appDir: z.ZodString;
26
+ configFile: z.ZodOptional<z.ZodString>;
27
+ providerEnvironment: z.ZodNullable<z.ZodString>;
28
+ migrations: z.ZodOptional<z.ZodObject<{
29
+ format: z.ZodString;
30
+ directory: z.ZodString;
31
+ }, z.core.$strip>>;
32
+ }, z.core.$strip>;
33
+ export type DatabaseMigrationTarget = z.infer<typeof DatabaseMigrationTargetSchema>;
34
+ /** What the driver asks a migrator for one app. */
35
+ export declare const DatabaseMigrationTargetQuerySchema: z.ZodObject<{
36
+ appDir: z.ZodString;
37
+ environment: z.ZodOptional<z.ZodString>;
38
+ configFile: z.ZodOptional<z.ZodString>;
39
+ rendered: z.ZodOptional<z.ZodType<JsonObject, JsonObject, z.core.$ZodTypeInternals<JsonObject, JsonObject>>>;
40
+ }, z.core.$strip>;
41
+ export type DatabaseMigrationTargetQuery = z.infer<typeof DatabaseMigrationTargetQuerySchema>;
42
+ /** One applied migration as the ledger records it. */
43
+ export declare const DatabaseMigrationReceiptSchema: z.ZodObject<{
44
+ tag: z.ZodString;
45
+ idx: z.ZodNumber;
46
+ checksum: z.ZodString;
47
+ }, z.core.$strip>;
48
+ export type DatabaseMigrationReceipt = z.infer<typeof DatabaseMigrationReceiptSchema>;
49
+ /** One operation a session runs or describes. */
50
+ export declare const DatabaseMigrationOperationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
51
+ kind: z.ZodLiteral<"ledger-bootstrap">;
52
+ }, z.core.$strip>, z.ZodObject<{
53
+ kind: z.ZodLiteral<"ledger-read">;
54
+ }, z.core.$strip>, z.ZodObject<{
55
+ kind: z.ZodLiteral<"ledger-record">;
56
+ receipts: z.ZodArray<z.ZodObject<{
57
+ tag: z.ZodString;
58
+ idx: z.ZodNumber;
59
+ checksum: z.ZodString;
60
+ }, z.core.$strip>>;
61
+ appliedAt: z.ZodNumber;
62
+ }, z.core.$strip>, z.ZodObject<{
63
+ kind: z.ZodLiteral<"file">;
64
+ file: z.ZodString;
65
+ }, z.core.$strip>, z.ZodObject<{
66
+ kind: z.ZodLiteral<"command">;
67
+ sql: z.ZodString;
68
+ }, z.core.$strip>], "kind">;
69
+ export type DatabaseMigrationOperation = z.infer<typeof DatabaseMigrationOperationSchema>;
70
+ /**
71
+ * Where an engine takes its provider credentials from. `secrets-store` (the
72
+ * default) resolves them through the runtime's secrets stores for the
73
+ * session's environment; `ambient` is the operator's explicit opt-in to the
74
+ * provider's own shell credentials, and never consults a store.
75
+ */
76
+ export declare const DatabaseMigrationCredentialSourceSchema: z.ZodEnum<{
77
+ "secrets-store": "secrets-store";
78
+ ambient: "ambient";
79
+ }>;
80
+ export type DatabaseMigrationCredentialSource = z.infer<typeof DatabaseMigrationCredentialSourceSchema>;
81
+ /** The driver's progress sink; engines report their tooling's output through it. */
82
+ export interface DatabaseMigrationLog {
83
+ info(message: string): void;
84
+ warn(message: string): void;
85
+ log(message: string): void;
86
+ error(message: string): void;
87
+ }
88
+ /** The data of one session request, parsed at the driver's boundary. */
89
+ export declare const DatabaseMigrationSessionRequestSchema: z.ZodObject<{
90
+ target: z.ZodObject<{
91
+ migrator: z.ZodString;
92
+ database: z.ZodString;
93
+ binding: z.ZodOptional<z.ZodString>;
94
+ appDir: z.ZodString;
95
+ configFile: z.ZodOptional<z.ZodString>;
96
+ providerEnvironment: z.ZodNullable<z.ZodString>;
97
+ migrations: z.ZodOptional<z.ZodObject<{
98
+ format: z.ZodString;
99
+ directory: z.ZodString;
100
+ }, z.core.$strip>>;
101
+ }, z.core.$strip>;
102
+ location: z.ZodEnum<{
103
+ local: "local";
104
+ remote: "remote";
105
+ }>;
106
+ environment: z.ZodOptional<z.ZodString>;
107
+ credentialSource: z.ZodDefault<z.ZodEnum<{
108
+ "secrets-store": "secrets-store";
109
+ ambient: "ambient";
110
+ }>>;
111
+ workspaceRoot: z.ZodOptional<z.ZodString>;
112
+ }, z.core.$strip>;
113
+ export type DatabaseMigrationSessionRequest = z.infer<typeof DatabaseMigrationSessionRequestSchema>;
114
+ export interface DatabaseMigrationSessionOptions extends DatabaseMigrationSessionRequest {
115
+ readonly log: DatabaseMigrationLog;
116
+ /**
117
+ * The provider environment a deploy already resolved for this session's
118
+ * environment. When present the engine runs its tooling under exactly these
119
+ * variables and resolves no credentials of its own.
120
+ */
121
+ readonly providerVariables?: Readonly<Record<string, string>>;
122
+ }
123
+ /**
124
+ * One target bound at one location. Every method refuses with a typed
125
+ * CapabilityError carrying the tooling's diagnostic; none treats failure text
126
+ * as success.
127
+ */
128
+ export interface DatabaseMigrationSession {
129
+ readonly target: DatabaseMigrationTarget;
130
+ /** The exact command a dry-run prints for `operation`; runs nothing. */
131
+ describe(operation: DatabaseMigrationOperation): string;
132
+ execute(operation: DatabaseMigrationOperation): Promise<void>;
133
+ /** Tags recorded in the ledger. */
134
+ appliedTags(): Promise<Set<string>>;
135
+ /** Which of `names` exist as tables. */
136
+ existingTables(names: readonly string[]): Promise<Set<string>>;
137
+ /** Rows a read-only query returns. */
138
+ rows(sql: string): Promise<JsonObject[]>;
139
+ /** Exact receipts the engine's own native ledger holds (e.g. wrangler's `d1_migrations`); empty when it keeps none. */
140
+ nativeAppliedTags(): Promise<Set<string>>;
141
+ }
142
+ export interface DatabaseMigratorImplementation {
143
+ /** The databases this migrator serves for one app; empty when the app declares none of its kind. */
144
+ targets(query: DatabaseMigrationTargetQuery): Promise<DatabaseMigrationTarget[]>;
145
+ open(options: DatabaseMigrationSessionOptions): Promise<DatabaseMigrationSession>;
146
+ }
147
+ export declare const DatabaseMigratorDescriptorSchema: z.ZodObject<{
148
+ id: z.ZodString;
149
+ name: z.ZodOptional<z.ZodString>;
150
+ description: z.ZodOptional<z.ZodString>;
151
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
152
+ hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
153
+ enabled: z.ZodOptional<z.ZodBoolean>;
154
+ priority: z.ZodOptional<z.ZodNumber>;
155
+ capabilityId: z.ZodOptional<z.ZodString>;
156
+ requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
157
+ optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
158
+ config: z.ZodOptional<z.ZodUnknown>;
159
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
160
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
161
+ maxEntries: z.ZodOptional<z.ZodNumber>;
162
+ maxBytes: z.ZodOptional<z.ZodNumber>;
163
+ cascadeFrom: z.ZodOptional<z.ZodString>;
164
+ ageField: z.ZodOptional<z.ZodString>;
165
+ reason: z.ZodString;
166
+ enforcedBy: z.ZodOptional<z.ZodString>;
167
+ }, z.core.$strip>]>>;
168
+ kind: z.ZodLiteral<"infra/database-migrator">;
169
+ engine: z.ZodString;
170
+ provider: z.ZodOptional<z.ZodString>;
171
+ }, z.core.$strip>;
172
+ export type DatabaseMigratorDescriptor = z.infer<typeof DatabaseMigratorDescriptorSchema>;
173
+ //# sourceMappingURL=database-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-migration.d.ts","sourceRoot":"","sources":["../../src/schemas/database-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Contracts of the `infra/database-migrator` kind: the targets a migrator
3
+ * serves, the operations a session runs, and the implementation interface
4
+ * every engine registers.
5
+ */
6
+ import * as z from 'zod/v4';
7
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
8
+ import { JsonObjectSchema } from '@vibesdotdev/kernel/schemas/json';
9
+ /** Where a migration runs: the developer's local emulation or the provider's live database. */
10
+ export const DatabaseMigrationLocationSchema = z.enum(['local', 'remote']);
11
+ /** The migration files one database declares: a format id and its directory (absolute). */
12
+ export const DatabaseMigrationSourceSchema = z.object({
13
+ format: z.string().min(1),
14
+ directory: z.string().min(1)
15
+ });
16
+ /** One database an app declares, as the migrator that serves it describes it. */
17
+ export const DatabaseMigrationTargetSchema = z.object({
18
+ /** The `infra/database-migrator` implementation id that serves this database. */
19
+ migrator: z.string().min(1),
20
+ /** The database's name at its provider. */
21
+ database: z.string().min(1),
22
+ /** The binding name the app reaches the database through, when the provider has one. */
23
+ binding: z.string().optional(),
24
+ appDir: z.string().min(1),
25
+ /** Alternate provider config file the target was read from, relative to `appDir`. */
26
+ configFile: z.string().optional(),
27
+ /** The provider's own name for the selected environment block; null for its top level. */
28
+ providerEnvironment: z.string().nullable(),
29
+ /** Absent when the database declares no migrations; ad-hoc SQL can still run against it. */
30
+ migrations: DatabaseMigrationSourceSchema.optional()
31
+ });
32
+ /** What the driver asks a migrator for one app. */
33
+ export const DatabaseMigrationTargetQuerySchema = z.object({
34
+ appDir: z.string().min(1),
35
+ /** The Vibes deployment environment (`production`, `staging`, `local`, ...). */
36
+ environment: z.string().optional(),
37
+ configFile: z.string().optional(),
38
+ /** The provider artifact the app's deployment module renders, read when the app commits none. */
39
+ rendered: JsonObjectSchema.optional()
40
+ });
41
+ /** One applied migration as the ledger records it. */
42
+ export const DatabaseMigrationReceiptSchema = z.object({
43
+ tag: z.string().min(1),
44
+ idx: z.number().int(),
45
+ checksum: z.string().min(1)
46
+ });
47
+ /** One operation a session runs or describes. */
48
+ export const DatabaseMigrationOperationSchema = z.discriminatedUnion('kind', [
49
+ /** Create the ledger when absent (idempotent). */
50
+ z.object({ kind: z.literal('ledger-bootstrap') }),
51
+ /** Read the ledger's applied tags. */
52
+ z.object({ kind: z.literal('ledger-read') }),
53
+ /** Record receipts after their files applied. */
54
+ z.object({
55
+ kind: z.literal('ledger-record'),
56
+ receipts: z.array(DatabaseMigrationReceiptSchema).min(1),
57
+ appliedAt: z.number().int().nonnegative()
58
+ }),
59
+ /** Run one SQL file (absolute path). */
60
+ z.object({ kind: z.literal('file'), file: z.string().min(1) }),
61
+ /** Run inline SQL. */
62
+ z.object({ kind: z.literal('command'), sql: z.string().min(1) })
63
+ ]);
64
+ /**
65
+ * Where an engine takes its provider credentials from. `secrets-store` (the
66
+ * default) resolves them through the runtime's secrets stores for the
67
+ * session's environment; `ambient` is the operator's explicit opt-in to the
68
+ * provider's own shell credentials, and never consults a store.
69
+ */
70
+ export const DatabaseMigrationCredentialSourceSchema = z.enum(['secrets-store', 'ambient']);
71
+ /** The data of one session request, parsed at the driver's boundary. */
72
+ export const DatabaseMigrationSessionRequestSchema = z.object({
73
+ target: DatabaseMigrationTargetSchema,
74
+ location: DatabaseMigrationLocationSchema,
75
+ /** The Vibes deployment environment the session acts in (credentials select by it). */
76
+ environment: z.string().min(1).optional(),
77
+ credentialSource: DatabaseMigrationCredentialSourceSchema.default('secrets-store'),
78
+ /** The directory the engine's tooling runs from (defaults to the target's app directory). */
79
+ workspaceRoot: z.string().min(1).optional()
80
+ });
81
+ export const DatabaseMigratorDescriptorSchema = RuntimeDescriptorSchema.extend({
82
+ kind: z.literal('infra/database-migrator'),
83
+ /** The SQL engine the migrator drives (`sqlite`, `postgres`, ...). */
84
+ engine: z.string().min(1),
85
+ /** The provider that hosts the databases, when one does. */
86
+ provider: z.string().min(1).optional()
87
+ });
88
+ //# sourceMappingURL=database-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-migration.js","sourceRoot":"","sources":["../../src/schemas/database-migration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kCAAkC,CAAC;AAErF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAG3E,2FAA2F;AAC3F,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5B,CAAC,CAAC;AAGH,iFAAiF;AACjF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,iFAAiF;IACjF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,wFAAwF;IACxF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,qFAAqF;IACrF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,0FAA0F;IAC1F,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,4FAA4F;IAC5F,UAAU,EAAE,6BAA6B,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAGH,mDAAmD;AACnD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,gFAAgF;IAChF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,iGAAiG;IACjG,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAGH,sDAAsD;AACtD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACtB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAGH,iDAAiD;AACjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC5E,kDAAkD;IAClD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACjD,sCAAsC;IACtC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;IAC5C,iDAAiD;IACjD,CAAC,CAAC,MAAM,CAAC;QACR,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;QAChC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;KACzC,CAAC;IACF,wCAAwC;IACxC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,sBAAsB;IACtB,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;CAChE,CAAC,CAAC;AAGH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;AAW5F,wEAAwE;AACxE,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7D,MAAM,EAAE,6BAA6B;IACrC,QAAQ,EAAE,+BAA+B;IACzC,uFAAuF;IACvF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,gBAAgB,EAAE,uCAAuC,CAAC,OAAO,CAAC,eAAe,CAAC;IAClF,6FAA6F;IAC7F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAuCH,MAAM,CAAC,MAAM,gCAAgC,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC9E,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;IAC1C,sEAAsE;IACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import * as z from 'zod/v4';
2
+ /** An admitted provider config object: a record of arbitrary provider-defined values. */
3
+ export declare const ProviderConfigSchema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
4
+ export type ProviderConfig = z.infer<typeof ProviderConfigSchema>;
5
+ /** What selecting one provider block yields: the block, or null when it is absent. */
6
+ export declare const ResolvedProviderConfigSchema: z.ZodObject<{
7
+ config: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
8
+ providerEnvironment: z.ZodNullable<z.ZodString>;
9
+ }, z.core.$strip>;
10
+ export type ResolvedProviderConfig = z.infer<typeof ResolvedProviderConfigSchema>;
11
+ //# sourceMappingURL=deployment-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-environment.d.ts","sourceRoot":"","sources":["../../src/schemas/deployment-environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,wCAAoC,CAAC;AACtE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,sFAAsF;AACtF,eAAO,MAAM,4BAA4B;;;iBAGvC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as z from 'zod/v4';
2
+ /** An admitted provider config object: a record of arbitrary provider-defined values. */
3
+ export const ProviderConfigSchema = z.record(z.string(), z.unknown());
4
+ /** What selecting one provider block yields: the block, or null when it is absent. */
5
+ export const ResolvedProviderConfigSchema = z.object({
6
+ config: ProviderConfigSchema.nullable(),
7
+ providerEnvironment: z.string().nullable()
8
+ });
9
+ //# sourceMappingURL=deployment-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-environment.js","sourceRoot":"","sources":["../../src/schemas/deployment-environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,yFAAyF;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAGtE,sFAAsF;AACtF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,MAAM,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IACvC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC"}