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

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 (331) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +28 -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-budget.d.ts +319 -0
  54. package/dist/deployment-budget.d.ts.map +1 -0
  55. package/dist/deployment-budget.js +660 -0
  56. package/dist/deployment-budget.js.map +1 -0
  57. package/dist/deployment-environment.d.ts +30 -0
  58. package/dist/deployment-environment.d.ts.map +1 -0
  59. package/dist/deployment-environment.js +53 -0
  60. package/dist/deployment-environment.js.map +1 -0
  61. package/dist/deployment-graph.d.ts +185 -0
  62. package/dist/deployment-graph.d.ts.map +1 -0
  63. package/dist/deployment-graph.js +705 -0
  64. package/dist/deployment-graph.js.map +1 -0
  65. package/dist/deployment.d.ts +25 -4
  66. package/dist/deployment.d.ts.map +1 -1
  67. package/dist/deployment.js +105 -0
  68. package/dist/deployment.js.map +1 -1
  69. package/dist/doks/cloud/base.d.ts +49 -0
  70. package/dist/doks/cloud/base.d.ts.map +1 -0
  71. package/dist/doks/cloud/base.js +138 -0
  72. package/dist/doks/cloud/base.js.map +1 -0
  73. package/dist/doks/cloud/factory.d.ts +18 -0
  74. package/dist/doks/cloud/factory.d.ts.map +1 -0
  75. package/dist/doks/cloud/factory.js +22 -0
  76. package/dist/doks/cloud/factory.js.map +1 -0
  77. package/dist/doks/cloud/index.d.ts +5 -0
  78. package/dist/doks/cloud/index.d.ts.map +1 -0
  79. package/dist/doks/cloud/index.js +4 -0
  80. package/dist/doks/cloud/index.js.map +1 -0
  81. package/dist/doks/types.d.ts +95 -0
  82. package/dist/doks/types.d.ts.map +1 -0
  83. package/dist/doks/types.js +14 -0
  84. package/dist/doks/types.js.map +1 -0
  85. package/dist/generate/index.d.ts +29 -0
  86. package/dist/generate/index.d.ts.map +1 -0
  87. package/dist/generate/index.js +28 -0
  88. package/dist/generate/index.js.map +1 -0
  89. package/dist/generate/infra-generate.plugin.d.ts +3 -0
  90. package/dist/generate/infra-generate.plugin.d.ts.map +1 -0
  91. package/dist/generate/infra-generate.plugin.js +23 -0
  92. package/dist/generate/infra-generate.plugin.js.map +1 -0
  93. package/dist/generate/plugin.d.ts +2 -0
  94. package/dist/generate/plugin.d.ts.map +1 -0
  95. package/dist/generate/plugin.js +2 -0
  96. package/dist/generate/plugin.js.map +1 -0
  97. package/dist/heartbeat/cron-heartbeat.d.ts +97 -0
  98. package/dist/heartbeat/cron-heartbeat.d.ts.map +1 -0
  99. package/dist/heartbeat/cron-heartbeat.js +200 -0
  100. package/dist/heartbeat/cron-heartbeat.js.map +1 -0
  101. package/dist/index.d.ts +37 -22
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +29 -14
  104. package/dist/index.js.map +1 -1
  105. package/dist/infra.plugin.d.ts +1 -1
  106. package/dist/infra.plugin.d.ts.map +1 -1
  107. package/dist/infra.plugin.js +64 -12
  108. package/dist/infra.plugin.js.map +1 -1
  109. package/dist/kinds/alerts.kind.d.ts +64 -25
  110. package/dist/kinds/alerts.kind.d.ts.map +1 -1
  111. package/dist/kinds/alerts.kind.js +43 -16
  112. package/dist/kinds/alerts.kind.js.map +1 -1
  113. package/dist/kinds/artifact.kind.d.ts +58 -10
  114. package/dist/kinds/artifact.kind.d.ts.map +1 -1
  115. package/dist/kinds/artifact.kind.js +26 -9
  116. package/dist/kinds/artifact.kind.js.map +1 -1
  117. package/dist/kinds/billing.kind.d.ts +88 -0
  118. package/dist/kinds/billing.kind.d.ts.map +1 -0
  119. package/dist/kinds/billing.kind.js +48 -0
  120. package/dist/kinds/billing.kind.js.map +1 -0
  121. package/dist/kinds/build-job.kind.d.ts +383 -0
  122. package/dist/kinds/build-job.kind.d.ts.map +1 -0
  123. package/dist/kinds/build-job.kind.js +218 -0
  124. package/dist/kinds/build-job.kind.js.map +1 -0
  125. package/dist/kinds/cache-byte-store.d.ts +23 -0
  126. package/dist/kinds/cache-byte-store.d.ts.map +1 -0
  127. package/dist/kinds/cache-byte-store.js +9 -0
  128. package/dist/kinds/cache-byte-store.js.map +1 -0
  129. package/dist/kinds/cache.kind.d.ts +38 -94
  130. package/dist/kinds/cache.kind.d.ts.map +1 -1
  131. package/dist/kinds/cache.kind.js +39 -50
  132. package/dist/kinds/cache.kind.js.map +1 -1
  133. package/dist/kinds/cluster.kind.d.ts +154 -0
  134. package/dist/kinds/cluster.kind.d.ts.map +1 -0
  135. package/dist/kinds/cluster.kind.js +99 -0
  136. package/dist/kinds/cluster.kind.js.map +1 -0
  137. package/dist/kinds/compute-source.kind.d.ts +155 -0
  138. package/dist/kinds/compute-source.kind.d.ts.map +1 -0
  139. package/dist/kinds/compute-source.kind.js +158 -0
  140. package/dist/kinds/compute-source.kind.js.map +1 -0
  141. package/dist/kinds/container-registry.kind.d.ts +62 -0
  142. package/dist/kinds/container-registry.kind.d.ts.map +1 -0
  143. package/dist/kinds/container-registry.kind.js +47 -0
  144. package/dist/kinds/container-registry.kind.js.map +1 -0
  145. package/dist/kinds/database-migrator.kind.d.ts +6 -0
  146. package/dist/kinds/database-migrator.kind.d.ts.map +1 -0
  147. package/dist/kinds/database-migrator.kind.js +28 -0
  148. package/dist/kinds/database-migrator.kind.js.map +1 -0
  149. package/dist/kinds/database.kind.d.ts +114 -93
  150. package/dist/kinds/database.kind.d.ts.map +1 -1
  151. package/dist/kinds/database.kind.js +93 -54
  152. package/dist/kinds/database.kind.js.map +1 -1
  153. package/dist/kinds/deployment-provider.kind.d.ts +5 -0
  154. package/dist/kinds/deployment-provider.kind.d.ts.map +1 -0
  155. package/dist/kinds/deployment-provider.kind.js +11 -0
  156. package/dist/kinds/deployment-provider.kind.js.map +1 -0
  157. package/dist/kinds/discovery.d.ts +5 -12
  158. package/dist/kinds/discovery.d.ts.map +1 -1
  159. package/dist/kinds/discovery.js +5 -17
  160. package/dist/kinds/discovery.js.map +1 -1
  161. package/dist/kinds/dns.kind.d.ts +162 -0
  162. package/dist/kinds/dns.kind.d.ts.map +1 -0
  163. package/dist/kinds/dns.kind.js +54 -0
  164. package/dist/kinds/dns.kind.js.map +1 -0
  165. package/dist/kinds/drift.kind.d.ts +115 -0
  166. package/dist/kinds/drift.kind.d.ts.map +1 -0
  167. package/dist/kinds/drift.kind.js +60 -0
  168. package/dist/kinds/drift.kind.js.map +1 -0
  169. package/dist/kinds/edge-hostname.kind.d.ts +124 -0
  170. package/dist/kinds/edge-hostname.kind.d.ts.map +1 -0
  171. package/dist/kinds/edge-hostname.kind.js +87 -0
  172. package/dist/kinds/edge-hostname.kind.js.map +1 -0
  173. package/dist/kinds/edge-tls.kind.d.ts +194 -0
  174. package/dist/kinds/edge-tls.kind.d.ts.map +1 -0
  175. package/dist/kinds/edge-tls.kind.js +58 -0
  176. package/dist/kinds/edge-tls.kind.js.map +1 -0
  177. package/dist/kinds/firewall.kind.d.ts +92 -0
  178. package/dist/kinds/firewall.kind.d.ts.map +1 -0
  179. package/dist/kinds/firewall.kind.js +59 -0
  180. package/dist/kinds/firewall.kind.js.map +1 -0
  181. package/dist/kinds/git-hosting.kind.d.ts +36 -38
  182. package/dist/kinds/git-hosting.kind.d.ts.map +1 -1
  183. package/dist/kinds/git-hosting.kind.js +21 -32
  184. package/dist/kinds/git-hosting.kind.js.map +1 -1
  185. package/dist/kinds/index.d.ts +41 -15
  186. package/dist/kinds/index.d.ts.map +1 -1
  187. package/dist/kinds/index.js +40 -14
  188. package/dist/kinds/index.js.map +1 -1
  189. package/dist/kinds/inventory.kind.d.ts +245 -0
  190. package/dist/kinds/inventory.kind.d.ts.map +1 -0
  191. package/dist/kinds/inventory.kind.js +243 -0
  192. package/dist/kinds/inventory.kind.js.map +1 -0
  193. package/dist/kinds/load-balancer.kind.d.ts +135 -0
  194. package/dist/kinds/load-balancer.kind.d.ts.map +1 -0
  195. package/dist/kinds/load-balancer.kind.js +71 -0
  196. package/dist/kinds/load-balancer.kind.js.map +1 -0
  197. package/dist/kinds/logs.kind.d.ts +74 -3
  198. package/dist/kinds/logs.kind.d.ts.map +1 -1
  199. package/dist/kinds/logs.kind.js +26 -17
  200. package/dist/kinds/logs.kind.js.map +1 -1
  201. package/dist/kinds/nfs.kind.d.ts +67 -0
  202. package/dist/kinds/nfs.kind.d.ts.map +1 -0
  203. package/dist/kinds/nfs.kind.js +45 -0
  204. package/dist/kinds/nfs.kind.js.map +1 -0
  205. package/dist/kinds/node-pool.kind.d.ts +134 -0
  206. package/dist/kinds/node-pool.kind.d.ts.map +1 -0
  207. package/dist/kinds/node-pool.kind.js +88 -0
  208. package/dist/kinds/node-pool.kind.js.map +1 -0
  209. package/dist/kinds/object-storage.kind.d.ts +50 -24
  210. package/dist/kinds/object-storage.kind.d.ts.map +1 -1
  211. package/dist/kinds/object-storage.kind.js +40 -23
  212. package/dist/kinds/object-storage.kind.js.map +1 -1
  213. package/dist/kinds/observability.kind.d.ts +104 -6
  214. package/dist/kinds/observability.kind.d.ts.map +1 -1
  215. package/dist/kinds/observability.kind.js +67 -9
  216. package/dist/kinds/observability.kind.js.map +1 -1
  217. package/dist/kinds/package-registry.kind.d.ts +139 -33
  218. package/dist/kinds/package-registry.kind.d.ts.map +1 -1
  219. package/dist/kinds/package-registry.kind.js +55 -25
  220. package/dist/kinds/package-registry.kind.js.map +1 -1
  221. package/dist/kinds/queue.kind.d.ts +67 -63
  222. package/dist/kinds/queue.kind.d.ts.map +1 -1
  223. package/dist/kinds/queue.kind.js +55 -33
  224. package/dist/kinds/queue.kind.js.map +1 -1
  225. package/dist/kinds/read-descriptor.d.ts +15 -0
  226. package/dist/kinds/read-descriptor.d.ts.map +1 -0
  227. package/dist/kinds/read-descriptor.js +11 -0
  228. package/dist/kinds/read-descriptor.js.map +1 -0
  229. package/dist/kinds/rum.kind.d.ts +36 -6
  230. package/dist/kinds/rum.kind.d.ts.map +1 -1
  231. package/dist/kinds/rum.kind.js +6 -7
  232. package/dist/kinds/rum.kind.js.map +1 -1
  233. package/dist/kinds/sandbox.kind.d.ts +136 -40
  234. package/dist/kinds/sandbox.kind.d.ts.map +1 -1
  235. package/dist/kinds/sandbox.kind.js +82 -43
  236. package/dist/kinds/sandbox.kind.js.map +1 -1
  237. package/dist/kinds/select-compute-source.d.ts +72 -0
  238. package/dist/kinds/select-compute-source.d.ts.map +1 -0
  239. package/dist/kinds/select-compute-source.js +170 -0
  240. package/dist/kinds/select-compute-source.js.map +1 -0
  241. package/dist/kinds/service-release.kind.d.ts +771 -0
  242. package/dist/kinds/service-release.kind.d.ts.map +1 -0
  243. package/dist/kinds/service-release.kind.js +676 -0
  244. package/dist/kinds/service-release.kind.js.map +1 -0
  245. package/dist/kinds/spend-guard.kind.d.ts +41 -0
  246. package/dist/kinds/spend-guard.kind.d.ts.map +1 -0
  247. package/dist/kinds/spend-guard.kind.js +140 -0
  248. package/dist/kinds/spend-guard.kind.js.map +1 -0
  249. package/dist/kinds/utilization.kind.d.ts +88 -0
  250. package/dist/kinds/utilization.kind.d.ts.map +1 -0
  251. package/dist/kinds/utilization.kind.js +62 -0
  252. package/dist/kinds/utilization.kind.js.map +1 -0
  253. package/dist/kinds/volume.kind.d.ts +54 -0
  254. package/dist/kinds/volume.kind.d.ts.map +1 -0
  255. package/dist/kinds/volume.kind.js +39 -0
  256. package/dist/kinds/volume.kind.js.map +1 -0
  257. package/dist/kinds/vpc.kind.d.ts +61 -0
  258. package/dist/kinds/vpc.kind.d.ts.map +1 -0
  259. package/dist/kinds/vpc.kind.js +51 -0
  260. package/dist/kinds/vpc.kind.js.map +1 -0
  261. package/dist/kinds/web-app.kind.d.ts +118 -45
  262. package/dist/kinds/web-app.kind.d.ts.map +1 -1
  263. package/dist/kinds/web-app.kind.js +69 -42
  264. package/dist/kinds/web-app.kind.js.map +1 -1
  265. package/dist/kinds/worker.kind.d.ts +129 -188
  266. package/dist/kinds/worker.kind.d.ts.map +1 -1
  267. package/dist/kinds/worker.kind.js +45 -123
  268. package/dist/kinds/worker.kind.js.map +1 -1
  269. package/dist/schemas/database-migration.d.ts +173 -0
  270. package/dist/schemas/database-migration.d.ts.map +1 -0
  271. package/dist/schemas/database-migration.js +88 -0
  272. package/dist/schemas/database-migration.js.map +1 -0
  273. package/dist/schemas/deployment-environment.d.ts +11 -0
  274. package/dist/schemas/deployment-environment.d.ts.map +1 -0
  275. package/dist/schemas/deployment-environment.js +9 -0
  276. package/dist/schemas/deployment-environment.js.map +1 -0
  277. package/dist/schemas/deployment-provider.d.ts +383 -0
  278. package/dist/schemas/deployment-provider.d.ts.map +1 -0
  279. package/dist/schemas/deployment-provider.js +211 -0
  280. package/dist/schemas/deployment-provider.js.map +1 -0
  281. package/dist/schemas/log-stream.d.ts +27 -0
  282. package/dist/schemas/log-stream.d.ts.map +1 -0
  283. package/dist/schemas/log-stream.js +31 -0
  284. package/dist/schemas/log-stream.js.map +1 -0
  285. package/dist/schemas/spend-guard.d.ts +155 -0
  286. package/dist/schemas/spend-guard.d.ts.map +1 -0
  287. package/dist/schemas/spend-guard.js +61 -0
  288. package/dist/schemas/spend-guard.js.map +1 -0
  289. package/dist/schemas.d.ts +195 -20
  290. package/dist/schemas.d.ts.map +1 -1
  291. package/dist/schemas.js +151 -31
  292. package/dist/schemas.js.map +1 -1
  293. package/dist/service.d.ts +87 -0
  294. package/dist/service.d.ts.map +1 -0
  295. package/dist/service.js +199 -0
  296. package/dist/service.js.map +1 -0
  297. package/dist/settle-work.d.ts +20 -0
  298. package/dist/settle-work.d.ts.map +1 -0
  299. package/dist/settle-work.js +22 -0
  300. package/dist/settle-work.js.map +1 -0
  301. package/dist/web-app-projection.d.ts +208 -0
  302. package/dist/web-app-projection.d.ts.map +1 -0
  303. package/dist/web-app-projection.js +95 -0
  304. package/dist/web-app-projection.js.map +1 -0
  305. package/package.json +121 -37
  306. package/src/bootstrap/index.ts +0 -15
  307. package/src/bootstrap/seed.descriptor.ts +0 -24
  308. package/src/bootstrap/seed.impl-shape.ts +0 -5
  309. package/src/bootstrap/seed.kind.ts +0 -26
  310. package/src/bootstrap/seed.runner.ts +0 -87
  311. package/src/credentials/resolve.ts +0 -205
  312. package/src/deployment.ts +0 -57
  313. package/src/index.ts +0 -149
  314. package/src/infra.plugin.ts +0 -54
  315. package/src/kinds/alerts.kind.ts +0 -164
  316. package/src/kinds/artifact.kind.ts +0 -96
  317. package/src/kinds/cache.kind.ts +0 -104
  318. package/src/kinds/database.kind.ts +0 -120
  319. package/src/kinds/discovery.ts +0 -26
  320. package/src/kinds/git-hosting.kind.ts +0 -100
  321. package/src/kinds/index.ts +0 -139
  322. package/src/kinds/logs.kind.ts +0 -104
  323. package/src/kinds/object-storage.kind.ts +0 -101
  324. package/src/kinds/observability.kind.ts +0 -178
  325. package/src/kinds/package-registry.kind.ts +0 -95
  326. package/src/kinds/queue.kind.ts +0 -102
  327. package/src/kinds/rum.kind.ts +0 -135
  328. package/src/kinds/sandbox.kind.ts +0 -115
  329. package/src/kinds/web-app.kind.ts +0 -103
  330. package/src/kinds/worker.kind.ts +0 -203
  331. package/src/schemas.ts +0 -127
@@ -3,82 +3,119 @@
3
3
  *
4
4
  * Describes a database instance.
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 database shape (engine, size, replicas, backups).
10
10
  * - Adapter-specific fields (namespace, storageSize, version, region, …)
11
- * live under `config`. Each adapter package defines its own concrete schema.
11
+ * live under an open `config` keyed by `adapter`. Each adapter package
12
+ * defines and parses its own concrete schema.
12
13
  */
13
14
  import * as z from 'zod/v4';
14
- import type { RuntimeKindDescriptorRecord } from '@vibesdotdev/runtime/schemas/kind';
15
- import type { RuntimeDescriptor } from '@vibesdotdev/runtime/schemas/descriptor';
15
+ import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
16
+ import type { KindContext } from '@vibesdotdev/kernel/schemas/kind';
16
17
  export declare const DatabaseBackupSchema: z.ZodObject<{
17
18
  enabled: z.ZodDefault<z.ZodBoolean>;
18
19
  schedule: z.ZodOptional<z.ZodString>;
19
20
  retention: z.ZodOptional<z.ZodString>;
20
21
  }, z.core.$strip>;
21
22
  export type DatabaseBackup = z.infer<typeof DatabaseBackupSchema>;
22
- export declare const DoksDatabaseConfigSchema: z.ZodObject<{
23
- namespace: z.ZodDefault<z.ZodString>;
24
- storageSize: z.ZodDefault<z.ZodString>;
25
- resources: z.ZodOptional<z.ZodObject<{
26
- requests: z.ZodOptional<z.ZodObject<{
27
- cpu: z.ZodString;
28
- memory: z.ZodString;
29
- }, z.core.$strip>>;
30
- limits: z.ZodOptional<z.ZodObject<{
31
- cpu: z.ZodString;
32
- memory: z.ZodString;
33
- }, z.core.$strip>>;
34
- }, z.core.$strip>>;
35
- version: z.ZodDefault<z.ZodString>;
23
+ /** Range of source IPs/UUIDs that may reach the cluster. */
24
+ export declare const TrustedSourceSchema: z.ZodObject<{
25
+ type: z.ZodEnum<{
26
+ tag: "tag";
27
+ droplet: "droplet";
28
+ k8s: "k8s";
29
+ ip_addr: "ip_addr";
30
+ app: "app";
31
+ }>;
32
+ value: z.ZodString;
36
33
  }, z.core.$strip>;
37
- export declare const DOManagedPostgresConfigSchema: z.ZodObject<{
38
- size: z.ZodDefault<z.ZodString>;
39
- region: z.ZodDefault<z.ZodString>;
40
- version: z.ZodDefault<z.ZodString>;
34
+ export type TrustedSource = z.infer<typeof TrustedSourceSchema>;
35
+ /** Storage autoscaling configuration. */
36
+ export declare const StorageAutoscalingSchema: z.ZodObject<{
37
+ enabled: z.ZodDefault<z.ZodBoolean>;
38
+ thresholdPercent: z.ZodDefault<z.ZodNumber>;
39
+ maxSizeGib: z.ZodDefault<z.ZodNumber>;
40
+ incrementPercent: z.ZodDefault<z.ZodNumber>;
41
41
  }, z.core.$strip>;
42
- export declare const TursoDatabaseConfigSchema: z.ZodObject<{
43
- database: z.ZodOptional<z.ZodString>;
44
- region: z.ZodDefault<z.ZodString>;
42
+ /** PgBouncer / direct pool configuration. */
43
+ export declare const ConnectionPoolSchema: z.ZodObject<{
44
+ name: z.ZodString;
45
+ mode: z.ZodDefault<z.ZodEnum<{
46
+ session: "session";
47
+ transaction: "transaction";
48
+ statement: "statement";
49
+ }>>;
50
+ size: z.ZodNumber;
51
+ db: z.ZodString;
52
+ user: z.ZodOptional<z.ZodString>;
45
53
  }, z.core.$strip>;
46
- export declare const CloudflareD1ConfigSchema: z.ZodObject<{
47
- adapter: z.ZodLiteral<"cloudflare-d1">;
48
- binding: z.ZodDefault<z.ZodString>;
49
- databaseName: z.ZodString;
50
- consumerAppId: z.ZodString;
54
+ /** Maintenance window — UTC day-of-week + HH:MM:SS. */
55
+ export declare const MaintenanceWindowSchema: z.ZodObject<{
56
+ day: z.ZodEnum<{
57
+ monday: "monday";
58
+ tuesday: "tuesday";
59
+ wednesday: "wednesday";
60
+ thursday: "thursday";
61
+ friday: "friday";
62
+ saturday: "saturday";
63
+ sunday: "sunday";
64
+ }>;
65
+ hour: z.ZodString;
51
66
  }, z.core.$strip>;
52
- export declare const DatabaseConfigSchema: z.ZodUnion<readonly [z.ZodObject<{
53
- namespace: z.ZodDefault<z.ZodString>;
54
- storageSize: z.ZodDefault<z.ZodString>;
55
- resources: z.ZodOptional<z.ZodObject<{
56
- requests: z.ZodOptional<z.ZodObject<{
57
- cpu: z.ZodString;
58
- memory: z.ZodString;
59
- }, z.core.$strip>>;
60
- limits: z.ZodOptional<z.ZodObject<{
61
- cpu: z.ZodString;
62
- memory: z.ZodString;
63
- }, z.core.$strip>>;
67
+ /** Cluster-level metrics alert policy. */
68
+ export declare const MetricsAlertSchema: z.ZodObject<{
69
+ type: z.ZodEnum<{
70
+ cpu: "cpu";
71
+ memory: "memory";
72
+ disk: "disk";
73
+ load_15: "load_15";
74
+ load_5: "load_5";
75
+ load_1: "load_1";
76
+ replication_lag: "replication_lag";
77
+ kafka_disk: "kafka_disk";
78
+ open_connections: "open_connections";
79
+ }>;
80
+ threshold: z.ZodNumber;
81
+ compare: z.ZodDefault<z.ZodEnum<{
82
+ GreaterThan: "GreaterThan";
83
+ LessThan: "LessThan";
84
+ }>>;
85
+ window: z.ZodDefault<z.ZodEnum<{
86
+ "5m": "5m";
87
+ "10m": "10m";
88
+ "30m": "30m";
89
+ "1h": "1h";
90
+ }>>;
91
+ notify: z.ZodOptional<z.ZodObject<{
92
+ email: z.ZodOptional<z.ZodArray<z.ZodString>>;
93
+ slackWebhook: z.ZodOptional<z.ZodString>;
94
+ pagerdutyServiceId: z.ZodOptional<z.ZodString>;
64
95
  }, z.core.$strip>>;
65
- version: z.ZodDefault<z.ZodString>;
66
- adapter: z.ZodLiteral<"doks-statefulset">;
67
- }, z.core.$strip>, z.ZodObject<{
68
- size: z.ZodDefault<z.ZodString>;
69
- region: z.ZodDefault<z.ZodString>;
70
- version: z.ZodDefault<z.ZodString>;
71
- adapter: z.ZodLiteral<"do-managed-postgres">;
72
- }, z.core.$strip>, z.ZodObject<{
73
- database: z.ZodOptional<z.ZodString>;
74
- region: z.ZodDefault<z.ZodString>;
75
- adapter: z.ZodLiteral<"turso">;
76
- }, z.core.$strip>, z.ZodObject<{
77
- adapter: z.ZodLiteral<"cloudflare-d1">;
78
- binding: z.ZodDefault<z.ZodString>;
79
- databaseName: z.ZodString;
80
- consumerAppId: z.ZodString;
81
- }, z.core.$strip>]>;
96
+ }, z.core.$strip>;
97
+ /** Postgres extension to enable on the cluster (e.g., pgvector, postgis). */
98
+ export declare const PostgresExtensionSchema: z.ZodObject<{
99
+ name: z.ZodString;
100
+ version: z.ZodOptional<z.ZodString>;
101
+ schema: z.ZodOptional<z.ZodString>;
102
+ }, z.core.$strip>;
103
+ /** Behavior when the cluster's major Postgres version reaches EOL. */
104
+ export declare const MajorVersionUpgradePolicySchema: z.ZodEnum<{
105
+ manual: "manual";
106
+ auto: "auto";
107
+ }>;
108
+ /**
109
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
110
+ * adapter package defines and parses its own config schema (Cloudflare D1's is
111
+ * `CloudflareD1DatabaseConfigSchema` in `@vibesdotdev/integrations-cloudflare`;
112
+ * DigitalOcean's DOKS/managed-postgres configs live in
113
+ * `@vibesdotdev/integrations-digitalocean`; a Turso adapter owns its config
114
+ * in its own integrations package); this kind names no provider.
115
+ */
116
+ export declare const DatabaseConfigSchema: z.ZodObject<{
117
+ adapter: z.ZodString;
118
+ }, z.core.$loose>;
82
119
  export declare const DatabaseDescriptorSchema: z.ZodObject<{
83
120
  id: z.ZodString;
84
121
  name: z.ZodOptional<z.ZodString>;
@@ -87,8 +124,18 @@ export declare const DatabaseDescriptorSchema: z.ZodObject<{
87
124
  hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
88
125
  enabled: z.ZodOptional<z.ZodBoolean>;
89
126
  priority: z.ZodOptional<z.ZodNumber>;
127
+ capabilityId: z.ZodOptional<z.ZodString>;
90
128
  requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
91
129
  optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
130
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
131
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
132
+ maxEntries: z.ZodOptional<z.ZodNumber>;
133
+ maxBytes: z.ZodOptional<z.ZodNumber>;
134
+ cascadeFrom: z.ZodOptional<z.ZodString>;
135
+ ageField: z.ZodOptional<z.ZodString>;
136
+ reason: z.ZodString;
137
+ enforcedBy: z.ZodOptional<z.ZodString>;
138
+ }, z.core.$strip>]>>;
92
139
  kind: z.ZodLiteral<"infra/database">;
93
140
  engine: z.ZodOptional<z.ZodString>;
94
141
  size: z.ZodOptional<z.ZodString>;
@@ -98,44 +145,18 @@ export declare const DatabaseDescriptorSchema: z.ZodObject<{
98
145
  schedule: z.ZodOptional<z.ZodString>;
99
146
  retention: z.ZodOptional<z.ZodString>;
100
147
  }, z.core.$strip>>;
101
- config: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
102
- namespace: z.ZodDefault<z.ZodString>;
103
- storageSize: z.ZodDefault<z.ZodString>;
104
- resources: z.ZodOptional<z.ZodObject<{
105
- requests: z.ZodOptional<z.ZodObject<{
106
- cpu: z.ZodString;
107
- memory: z.ZodString;
108
- }, z.core.$strip>>;
109
- limits: z.ZodOptional<z.ZodObject<{
110
- cpu: z.ZodString;
111
- memory: z.ZodString;
112
- }, z.core.$strip>>;
113
- }, z.core.$strip>>;
114
- version: z.ZodDefault<z.ZodString>;
115
- adapter: z.ZodLiteral<"doks-statefulset">;
116
- }, z.core.$strip>, z.ZodObject<{
117
- size: z.ZodDefault<z.ZodString>;
118
- region: z.ZodDefault<z.ZodString>;
119
- version: z.ZodDefault<z.ZodString>;
120
- adapter: z.ZodLiteral<"do-managed-postgres">;
121
- }, z.core.$strip>, z.ZodObject<{
122
- database: z.ZodOptional<z.ZodString>;
123
- region: z.ZodDefault<z.ZodString>;
124
- adapter: z.ZodLiteral<"turso">;
125
- }, z.core.$strip>, z.ZodObject<{
126
- adapter: z.ZodLiteral<"cloudflare-d1">;
127
- binding: z.ZodDefault<z.ZodString>;
128
- databaseName: z.ZodString;
129
- consumerAppId: z.ZodString;
130
- }, z.core.$strip>]>>;
148
+ config: z.ZodOptional<z.ZodObject<{
149
+ adapter: z.ZodString;
150
+ }, z.core.$loose>>;
131
151
  }, z.core.$strip>;
132
152
  export type DatabaseDescriptor = z.infer<typeof DatabaseDescriptorSchema>;
133
153
  declare class DefaultDatabaseImplementation {
134
154
  readonly descriptor: RuntimeDescriptor;
135
- readonly context: unknown;
136
- constructor(descriptor: RuntimeDescriptor, context: unknown);
137
- get config(): DatabaseDescriptor;
155
+ readonly context: KindContext;
156
+ /** The descriptor as this kind's schema reads it. */
157
+ readonly config: DatabaseDescriptor;
158
+ constructor(descriptor: RuntimeDescriptor, context: KindContext);
138
159
  }
139
- export declare const databaseKind: RuntimeKindDescriptorRecord<DefaultDatabaseImplementation>;
160
+ export declare const databaseKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DefaultDatabaseImplementation>;
140
161
  export {};
141
162
  //# sourceMappingURL=database.kind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/database.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAErF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAkBlE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;iBAcnC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;iBAOxC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;iBAKpC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;iBASnC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAK/B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,cAAM,6BAA6B;aAEjB,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,OAAO;gBADhB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,OAAO;IAGjC,IAAI,MAAM,IAAI,kBAAkB,CAE/B;CACD;AAED,eAAO,MAAM,YAAY,4DAMvB,CAAC"}
1
+ {"version":3,"file":"database.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/database.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAIpE,eAAO,MAAM,oBAAoB;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAkBlE,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB;;;;;;;;;iBAK9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,yCAAyC;AACzC,eAAO,MAAM,wBAAwB;;;;;iBAQnC,CAAC;AAEH,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB;;;;;;;;;;iBAM/B,CAAC;AAEH,uDAAuD;AACvD,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAalC,CAAC;AAEH,0CAA0C;AAC1C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyB7B,CAAC;AAEH,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AAEH,sEAAsE;AACtE,eAAO,MAAM,+BAA+B;;;EAA6B,CAAC;AAE1E;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,cAAM,6BAA6B;aAIjB,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,WAAW;IAJrC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;gBAEnB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,WAAW;CAKrC;AAED,eAAO,MAAM,YAAY,0FAKvB,CAAC"}
@@ -3,17 +3,19 @@
3
3
  *
4
4
  * Describes a database instance.
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 database shape (engine, size, replicas, backups).
10
10
  * - Adapter-specific fields (namespace, storageSize, version, region, …)
11
- * live under `config`. Each adapter package defines its own concrete schema.
11
+ * live under an open `config` keyed by `adapter`. Each adapter package
12
+ * defines and parses its own concrete schema.
12
13
  */
13
14
  import * as z from 'zod/v4';
14
- import { createRuntimeKind } from '@vibesdotdev/runtime/factory/kind';
15
- import { RuntimeDescriptorSchema } from '@vibesdotdev/runtime/schemas/descriptor';
16
- import { INFRA_DISCOVERY_PATTERN, extractStem } from "./discovery.js";
15
+ import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
16
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
17
+ import { readKindDescriptor } from "./read-descriptor.js";
18
+ import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
17
19
  export const DatabaseBackupSchema = z.object({
18
20
  enabled: z.boolean().default(false),
19
21
  schedule: z.string().optional(),
@@ -30,74 +32,111 @@ const DatabaseBaseSchema = RuntimeDescriptorSchema.extend({
30
32
  /** Backup configuration. */
31
33
  backups: DatabaseBackupSchema.optional()
32
34
  });
33
- export const DoksDatabaseConfigSchema = z.object({
34
- /** Kubernetes namespace (default: vibes). */
35
- namespace: z.string().min(1).default('vibes'),
36
- /** Storage size for pgdata volume (default: 10Gi). */
37
- storageSize: z.string().min(1).default('10Gi'),
38
- /** Container resources. */
39
- resources: z
35
+ /** Range of source IPs/UUIDs that may reach the cluster. */
36
+ export const TrustedSourceSchema = z.object({
37
+ /** Resource type (droplet, k8s, ip, tag, app). */
38
+ type: z.enum(['droplet', 'k8s', 'ip_addr', 'tag', 'app']),
39
+ /** Identifier — droplet id, cluster uuid, CIDR, tag name, or app id. */
40
+ value: z.string().min(1)
41
+ });
42
+ /** Storage autoscaling configuration. */
43
+ export const StorageAutoscalingSchema = z.object({
44
+ enabled: z.boolean().default(true),
45
+ /** Trigger threshold as a percentage of provisioned storage. */
46
+ thresholdPercent: z.number().int().min(1).max(100).default(80),
47
+ /** Maximum disk size in GiB (0 = uncapped). */
48
+ maxSizeGib: z.number().int().nonnegative().default(0),
49
+ /** Step (percent of current size) to grow by. */
50
+ incrementPercent: z.number().int().min(1).max(100).default(20)
51
+ });
52
+ /** PgBouncer / direct pool configuration. */
53
+ export const ConnectionPoolSchema = z.object({
54
+ name: z.string().min(1),
55
+ mode: z.enum(['transaction', 'session', 'statement']).default('transaction'),
56
+ size: z.number().int().positive(),
57
+ db: z.string().min(1),
58
+ user: z.string().min(1).optional()
59
+ });
60
+ /** Maintenance window — UTC day-of-week + HH:MM:SS. */
61
+ export const MaintenanceWindowSchema = z.object({
62
+ day: z.enum([
63
+ 'monday',
64
+ 'tuesday',
65
+ 'wednesday',
66
+ 'thursday',
67
+ 'friday',
68
+ 'saturday',
69
+ 'sunday'
70
+ ]),
71
+ hour: z
72
+ .string()
73
+ .regex(/^\d{2}:\d{2}(:\d{2})?$/, 'hour must be HH:MM or HH:MM:SS UTC')
74
+ });
75
+ /** Cluster-level metrics alert policy. */
76
+ export const MetricsAlertSchema = z.object({
77
+ type: z.enum([
78
+ 'cpu',
79
+ 'memory',
80
+ 'disk',
81
+ 'load_15',
82
+ 'load_5',
83
+ 'load_1',
84
+ 'replication_lag',
85
+ 'kafka_disk',
86
+ 'open_connections'
87
+ ]),
88
+ threshold: z.number(),
89
+ /** Comparator for threshold. */
90
+ compare: z.enum(['GreaterThan', 'LessThan']).default('GreaterThan'),
91
+ /** Sustained window before firing. */
92
+ window: z.enum(['5m', '10m', '30m', '1h']).default('10m'),
93
+ /** Notification channels — Slack webhook, email, or PagerDuty integration ids. */
94
+ notify: z
40
95
  .object({
41
- requests: z.object({ cpu: z.string().min(1), memory: z.string().min(1) }).optional(),
42
- limits: z.object({ cpu: z.string().min(1), memory: z.string().min(1) }).optional()
96
+ email: z.array(z.string().email()).optional(),
97
+ slackWebhook: z.string().url().optional(),
98
+ pagerdutyServiceId: z.string().min(1).optional()
43
99
  })
44
- .optional(),
45
- /** Postgres version tag (default: 16-alpine). */
46
- version: z.string().min(1).default('16-alpine')
100
+ .optional()
47
101
  });
48
- export const DOManagedPostgresConfigSchema = z.object({
49
- /** Database size tier (default: db-s-1vcpu-1gb). */
50
- size: z.string().min(1).default('db-s-1vcpu-1gb'),
51
- /** DO region (default: nyc1). */
52
- region: z.string().min(1).default('nyc1'),
53
- /** Postgres version (default: 16). */
54
- version: z.string().min(1).default('16')
102
+ /** Postgres extension to enable on the cluster (e.g., pgvector, postgis). */
103
+ export const PostgresExtensionSchema = z.object({
104
+ name: z.string().min(1),
105
+ version: z.string().min(1).optional(),
106
+ schema: z.string().min(1).optional()
55
107
  });
56
- export const TursoDatabaseConfigSchema = z.object({
57
- /** Turso database name (defaults to descriptor id). */
58
- database: z.string().min(1).optional(),
59
- /** Edge region for replication (default: aws:iad1). */
60
- region: z.string().min(1).default('aws:iad1')
61
- });
62
- export const CloudflareD1ConfigSchema = z.object({
63
- /** D1 adapter name (always 'cloudflare-d1'). */
64
- adapter: z.literal('cloudflare-d1'),
65
- /** Binding name for D1 in Cloudflare Workers (default: 'DB'). */
66
- binding: z.string().min(1).default('DB'),
67
- /** D1 database name. */
68
- databaseName: z.string().min(1),
69
- /** ID of the consuming app (for wrangler.jsonc generation). */
70
- consumerAppId: z.string().min(1)
108
+ /** Behavior when the cluster's major Postgres version reaches EOL. */
109
+ export const MajorVersionUpgradePolicySchema = z.enum(['manual', 'auto']);
110
+ /**
111
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
112
+ * adapter package defines and parses its own config schema (Cloudflare D1's is
113
+ * `CloudflareD1DatabaseConfigSchema` in `@vibesdotdev/integrations-cloudflare`;
114
+ * DigitalOcean's DOKS/managed-postgres configs live in
115
+ * `@vibesdotdev/integrations-digitalocean`; a Turso adapter owns its config
116
+ * in its own integrations package); this kind names no provider.
117
+ */
118
+ export const DatabaseConfigSchema = z.looseObject({
119
+ adapter: z.string().min(1)
71
120
  });
72
- export const DatabaseConfigSchema = z.union([
73
- DoksDatabaseConfigSchema.extend({ adapter: z.literal('doks-statefulset') }),
74
- DOManagedPostgresConfigSchema.extend({ adapter: z.literal('do-managed-postgres') }),
75
- TursoDatabaseConfigSchema.extend({ adapter: z.literal('turso') }),
76
- CloudflareD1ConfigSchema
77
- ]);
78
121
  export const DatabaseDescriptorSchema = DatabaseBaseSchema.extend({
79
- /**
80
- * Adapter-specific configuration. Discriminated union — each adapter
81
- * package defines its own config schema under its discriminator key.
82
- */
122
+ /** Adapter-specific configuration, parsed by the adapter that owns it. */
83
123
  config: DatabaseConfigSchema.optional()
84
124
  });
85
125
  class DefaultDatabaseImplementation {
86
126
  descriptor;
87
127
  context;
128
+ /** The descriptor as this kind's schema reads it. */
129
+ config;
88
130
  constructor(descriptor, context) {
89
131
  this.descriptor = descriptor;
90
132
  this.context = context;
91
- }
92
- get config() {
93
- return this.descriptor;
133
+ this.config = readKindDescriptor(DatabaseDescriptorSchema, descriptor);
94
134
  }
95
135
  }
96
136
  export const databaseKind = createRuntimeKind({
97
137
  id: 'infra/database',
98
138
  descriptorSchema: DatabaseDescriptorSchema,
99
139
  defaultImplementation: DefaultDatabaseImplementation,
100
- discoveryPattern: INFRA_DISCOVERY_PATTERN,
101
- extractStem
140
+ discoveryPatterns: INFRA_DISCOVERY_PATTERNS
102
141
  });
103
142
  //# sourceMappingURL=database.kind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.kind.js","sourceRoot":"","sources":["../../src/kinds/database.kind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.kind.js","sourceRoot":"","sources":["../../src/kinds/database.kind.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type DeploymentProviderImplementation } from '../schemas/deployment-provider.ts';
2
+ export { DeploymentProviderDescriptorSchema, type DeploymentProviderDescriptor } from '../schemas/deployment-provider.ts';
3
+ /** Schema-only: every provider registers its own implementation, constructed with the resolving runtime. */
4
+ export declare const deploymentProviderKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DeploymentProviderImplementation>;
5
+ //# sourceMappingURL=deployment-provider.kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-provider.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/deployment-provider.kind.ts"],"names":[],"mappings":"AAEA,OAAO,EAGN,KAAK,gCAAgC,EACrC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,kCAAkC,EAAE,KAAK,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAE1H,4GAA4G;AAC5G,eAAO,MAAM,sBAAsB,6FAIjC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { createRuntimeKind } from '@vibesdotdev/kernel';
2
+ import { DeploymentProviderDescriptorSchema } from "../schemas/deployment-provider.js";
3
+ import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
4
+ export { DeploymentProviderDescriptorSchema } from "../schemas/deployment-provider.js";
5
+ /** Schema-only: every provider registers its own implementation, constructed with the resolving runtime. */
6
+ export const deploymentProviderKind = createRuntimeKind({
7
+ id: 'infra/deployment-provider',
8
+ descriptorSchema: DeploymentProviderDescriptorSchema,
9
+ discoveryPatterns: INFRA_DISCOVERY_PATTERNS
10
+ });
11
+ //# sourceMappingURL=deployment-provider.kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-provider.kind.js","sourceRoot":"","sources":["../../src/kinds/deployment-provider.kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAqB,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EACN,kCAAkC,EAGlC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,kCAAkC,EAAqC,MAAM,mCAAmC,CAAC;AAE1H,4GAA4G;AAC5G,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAA4F;IAClJ,EAAE,EAAE,2BAA2B;IAC/B,gBAAgB,EAAE,kCAAkC;IACpD,iBAAiB,EAAE,wBAAwB;CAC3C,CAAC,CAAC"}
@@ -4,17 +4,10 @@
4
4
  * All infra kinds use the same discovery pattern for *.infra.ts files.
5
5
  */
6
6
  /**
7
- * Glob pattern for discovering infra resource declaration files.
7
+ * Package-relative discovery patterns for infra resource declaration files
8
+ * (rc02-rc03 §2.5): a package's own `*.infra.ts`, and `infra/*.infra.ts`. The
9
+ * kernel's one discovery pass matches them in every declared package of the
10
+ * bound workspace; nothing recurses and nothing binds by filename stem.
8
11
  */
9
- export declare const INFRA_DISCOVERY_PATTERN = "**/*.infra.ts";
10
- /**
11
- * Extract the stem (base name without extension) from an infra file.
12
- * Matches both .infra.ts and .infra.tsx extensions.
13
- *
14
- * @example
15
- * extractStem('auth.infra.ts') // 'auth'
16
- * extractStem('my-service.infra.tsx') // 'my-service'
17
- * extractStem('not-infra.ts') // null
18
- */
19
- export declare function extractStem(filename: string): string | null;
12
+ export declare const INFRA_DISCOVERY_PATTERNS: readonly ["*.infra.ts", "infra/*.infra.ts"];
20
13
  //# sourceMappingURL=discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/kinds/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK3D"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/kinds/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,6CAA8C,CAAC"}
@@ -4,22 +4,10 @@
4
4
  * All infra kinds use the same discovery pattern for *.infra.ts files.
5
5
  */
6
6
  /**
7
- * Glob pattern for discovering infra resource declaration files.
7
+ * Package-relative discovery patterns for infra resource declaration files
8
+ * (rc02-rc03 §2.5): a package's own `*.infra.ts`, and `infra/*.infra.ts`. The
9
+ * kernel's one discovery pass matches them in every declared package of the
10
+ * bound workspace; nothing recurses and nothing binds by filename stem.
8
11
  */
9
- export const INFRA_DISCOVERY_PATTERN = '**/*.infra.ts';
10
- /**
11
- * Extract the stem (base name without extension) from an infra file.
12
- * Matches both .infra.ts and .infra.tsx extensions.
13
- *
14
- * @example
15
- * extractStem('auth.infra.ts') // 'auth'
16
- * extractStem('my-service.infra.tsx') // 'my-service'
17
- * extractStem('not-infra.ts') // null
18
- */
19
- export function extractStem(filename) {
20
- const match = filename.match(/^(.+)\.infra\.tsx?$/);
21
- const stem = match ? match[1] : null;
22
- // Return null for empty stem (e.g., '.infra.ts')
23
- return stem && stem.length > 0 ? stem : null;
24
- }
12
+ export const INFRA_DISCOVERY_PATTERNS = ['*.infra.ts', 'infra/*.infra.ts'];
25
13
  //# sourceMappingURL=discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/kinds/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,iDAAiD;IACjD,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/kinds/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAU,CAAC"}