@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,71 +3,32 @@
3
3
  *
4
4
  * Describes a cache service.
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 cache shape (engine, maxMemory, eviction, namespace).
10
10
  * - Adapter-specific fields (region, version, numNodes, size, …)
11
- * live under `config`. Each adapter package defines its own concrete schema.
11
+ * live under `config`, keyed by a non-empty `adapter` discriminator.
12
+ * Each adapter package defines and parses its own concrete schema
13
+ * (DigitalOcean managed Redis/Valkey and DOKS Redis configs live in
14
+ * `@vibesdotdev/integrations-digitalocean`; Cloudflare KV's in
15
+ * `@vibesdotdev/integrations-cloudflare`); this kind names no provider,
16
+ * so a config for any adapter — including one contributed by a user
17
+ * plugin — parses here, and the adapter validates its own grammar.
12
18
  */
13
19
  import * as z from 'zod/v4';
14
- import type { RuntimeKindDescriptorRecord } from '@vibesdotdev/runtime/schemas/kind';
15
- import type { RuntimeDescriptor } from '@vibesdotdev/runtime/schemas/descriptor';
16
- export declare const DOManagedRedisConfigSchema: z.ZodObject<{
17
- maxMemory: z.ZodOptional<z.ZodString>;
18
- eviction: z.ZodOptional<z.ZodEnum<{
19
- lru: "lru";
20
- lfu: "lfu";
21
- ttl: "ttl";
22
- }>>;
23
- region: z.ZodDefault<z.ZodString>;
24
- version: z.ZodDefault<z.ZodString>;
25
- numNodes: z.ZodDefault<z.ZodNumber>;
26
- size: z.ZodOptional<z.ZodString>;
27
- }, z.core.$strip>;
28
- export declare const CloudflareKVCacheConfigSchema: z.ZodObject<{
29
- namespace: z.ZodString;
30
- }, z.core.$strip>;
31
- export declare const DOKSRedisCacheConfigSchema: z.ZodObject<{
32
- namespace: z.ZodDefault<z.ZodString>;
33
- image: z.ZodOptional<z.ZodString>;
34
- version: z.ZodDefault<z.ZodString>;
35
- maxMemory: z.ZodOptional<z.ZodString>;
36
- eviction: z.ZodOptional<z.ZodEnum<{
37
- lru: "lru";
38
- lfu: "lfu";
39
- ttl: "ttl";
40
- }>>;
41
- storageSize: z.ZodDefault<z.ZodString>;
42
- }, z.core.$strip>;
43
- export declare const CacheConfigSchema: z.ZodUnion<readonly [z.ZodObject<{
44
- maxMemory: z.ZodOptional<z.ZodString>;
45
- eviction: z.ZodOptional<z.ZodEnum<{
46
- lru: "lru";
47
- lfu: "lfu";
48
- ttl: "ttl";
49
- }>>;
50
- region: z.ZodDefault<z.ZodString>;
51
- version: z.ZodDefault<z.ZodString>;
52
- numNodes: z.ZodDefault<z.ZodNumber>;
53
- size: z.ZodOptional<z.ZodString>;
54
- adapter: z.ZodLiteral<"do-managed-redis">;
55
- }, z.core.$strip>, z.ZodObject<{
56
- namespace: z.ZodString;
57
- adapter: z.ZodLiteral<"cloudflare-kv">;
58
- }, z.core.$strip>, z.ZodObject<{
59
- namespace: z.ZodDefault<z.ZodString>;
60
- image: z.ZodOptional<z.ZodString>;
61
- version: z.ZodDefault<z.ZodString>;
62
- maxMemory: z.ZodOptional<z.ZodString>;
63
- eviction: z.ZodOptional<z.ZodEnum<{
64
- lru: "lru";
65
- lfu: "lfu";
66
- ttl: "ttl";
67
- }>>;
68
- storageSize: z.ZodDefault<z.ZodString>;
69
- adapter: z.ZodLiteral<"doks-redis">;
70
- }, z.core.$strip>]>;
20
+ import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
21
+ import type { CacheByteStore } from './cache-byte-store.ts';
22
+ /**
23
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
24
+ * adapter package defines and parses its own config schema; this kind names
25
+ * no provider, so a config for any adapter — including one contributed by a
26
+ * user plugin — parses here, and the adapter validates its own grammar.
27
+ */
28
+ export declare const CacheConfigSchema: z.ZodObject<{
29
+ adapter: z.ZodString;
30
+ }, z.core.$loose>;
31
+ export type CacheConfig = z.infer<typeof CacheConfigSchema>;
71
32
  export declare const CacheDescriptorSchema: z.ZodObject<{
72
33
  id: z.ZodString;
73
34
  name: z.ZodOptional<z.ZodString>;
@@ -76,53 +37,36 @@ export declare const CacheDescriptorSchema: z.ZodObject<{
76
37
  hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
77
38
  enabled: z.ZodOptional<z.ZodBoolean>;
78
39
  priority: z.ZodOptional<z.ZodNumber>;
40
+ capabilityId: z.ZodOptional<z.ZodString>;
79
41
  requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
80
42
  optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
43
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
44
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
45
+ maxEntries: z.ZodOptional<z.ZodNumber>;
46
+ maxBytes: z.ZodOptional<z.ZodNumber>;
47
+ cascadeFrom: z.ZodOptional<z.ZodString>;
48
+ ageField: z.ZodOptional<z.ZodString>;
49
+ reason: z.ZodString;
50
+ enforcedBy: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$strip>]>>;
81
52
  kind: z.ZodLiteral<"infra/cache">;
82
53
  engine: z.ZodOptional<z.ZodString>;
83
54
  maxMemory: z.ZodOptional<z.ZodString>;
84
55
  eviction: z.ZodOptional<z.ZodEnum<{
56
+ ttl: "ttl";
85
57
  lru: "lru";
86
58
  lfu: "lfu";
87
- ttl: "ttl";
88
59
  }>>;
89
60
  namespace: z.ZodOptional<z.ZodString>;
90
- config: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
91
- maxMemory: z.ZodOptional<z.ZodString>;
92
- eviction: z.ZodOptional<z.ZodEnum<{
93
- lru: "lru";
94
- lfu: "lfu";
95
- ttl: "ttl";
96
- }>>;
97
- region: z.ZodDefault<z.ZodString>;
98
- version: z.ZodDefault<z.ZodString>;
99
- numNodes: z.ZodDefault<z.ZodNumber>;
100
- size: z.ZodOptional<z.ZodString>;
101
- adapter: z.ZodLiteral<"do-managed-redis">;
102
- }, z.core.$strip>, z.ZodObject<{
103
- namespace: z.ZodString;
104
- adapter: z.ZodLiteral<"cloudflare-kv">;
105
- }, z.core.$strip>, z.ZodObject<{
106
- namespace: z.ZodDefault<z.ZodString>;
107
- image: z.ZodOptional<z.ZodString>;
108
- version: z.ZodDefault<z.ZodString>;
109
- maxMemory: z.ZodOptional<z.ZodString>;
110
- eviction: z.ZodOptional<z.ZodEnum<{
111
- lru: "lru";
112
- lfu: "lfu";
113
- ttl: "ttl";
114
- }>>;
115
- storageSize: z.ZodDefault<z.ZodString>;
116
- adapter: z.ZodLiteral<"doks-redis">;
117
- }, z.core.$strip>]>>;
61
+ config: z.ZodOptional<z.ZodObject<{
62
+ adapter: z.ZodString;
63
+ }, z.core.$loose>>;
118
64
  }, z.core.$strip>;
119
65
  export type CacheDescriptor = z.infer<typeof CacheDescriptorSchema>;
120
- declare class DefaultCacheImplementation {
66
+ /** The kind's implementation contract: descriptor/config plus content-addressed bytes. */
67
+ export interface CacheImplementation extends CacheByteStore {
121
68
  readonly descriptor: RuntimeDescriptor;
122
- readonly context: unknown;
123
- constructor(descriptor: RuntimeDescriptor, context: unknown);
124
- get config(): CacheDescriptor;
69
+ readonly config: CacheDescriptor;
125
70
  }
126
- export declare const cacheKind: RuntimeKindDescriptorRecord<DefaultCacheImplementation>;
127
- export {};
71
+ export declare const cacheKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<CacheImplementation>;
128
72
  //# sourceMappingURL=cache.kind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/cache.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;AAmBjF,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAarC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;iBAGxC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAarC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAI5B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,cAAM,0BAA0B;aAEd,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,OAAO;gBADhB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,OAAO;IAGjC,IAAI,MAAM,IAAI,eAAe,CAE5B;CACD;AAED,eAAO,MAAM,SAAS,yDAMpB,CAAC"}
1
+ {"version":3,"file":"cache.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/cache.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAI5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAIhF,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkB5E;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,0FAA0F;AAC1F,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IAC1D,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CACjC;AAiCD,eAAO,MAAM,SAAS,gFAKpB,CAAC"}
@@ -3,20 +3,28 @@
3
3
  *
4
4
  * Describes a cache service.
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 cache shape (engine, maxMemory, eviction, namespace).
10
10
  * - Adapter-specific fields (region, version, numNodes, size, …)
11
- * live under `config`. Each adapter package defines its own concrete schema.
11
+ * live under `config`, keyed by a non-empty `adapter` discriminator.
12
+ * Each adapter package defines and parses its own concrete schema
13
+ * (DigitalOcean managed Redis/Valkey and DOKS Redis configs live in
14
+ * `@vibesdotdev/integrations-digitalocean`; Cloudflare KV's in
15
+ * `@vibesdotdev/integrations-cloudflare`); this kind names no provider,
16
+ * so a config for any adapter — including one contributed by a user
17
+ * plugin — parses here, and the adapter validates its own grammar.
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';
16
- import { INFRA_DISCOVERY_PATTERN, extractStem } from "./discovery.js";
20
+ import { CapabilityError } from '@vibesdotdev/kernel';
21
+ import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
22
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
23
+ import { readKindDescriptor } from "./read-descriptor.js";
24
+ import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
17
25
  const CacheBaseSchema = RuntimeDescriptorSchema.extend({
18
26
  kind: z.literal('infra/cache'),
19
- /** Cache engine (e.g., 'cloudflare-kv', 'redis'). */
27
+ /** Cache engine (e.g., 'redis'). */
20
28
  engine: z.string().min(1).optional(),
21
29
  /** Maximum memory hint. */
22
30
  maxMemory: z.string().optional(),
@@ -25,66 +33,47 @@ const CacheBaseSchema = RuntimeDescriptorSchema.extend({
25
33
  /** Logical namespace within the cache. */
26
34
  namespace: z.string().optional()
27
35
  });
28
- export const DOManagedRedisConfigSchema = z.object({
29
- /** Max memory allocation (e.g., '256mb', '1gb'). */
30
- maxMemory: z.string().min(1).optional(),
31
- /** Eviction policy: lru, lfu, or ttl. */
32
- eviction: z.enum(['lru', 'lfu', 'ttl']).optional(),
33
- /** DO region (default: nyc1). */
34
- region: z.string().min(1).default('nyc1'),
35
- /** Redis version (default: 7). */
36
- version: z.string().min(1).default('7'),
37
- /** Number of nodes (default: 1). */
38
- numNodes: z.number().int().positive().default(1),
39
- /** Database size tier (optional, derived from maxMemory if not set). */
40
- size: z.string().min(1).optional()
41
- });
42
- export const CloudflareKVCacheConfigSchema = z.object({
43
- /** Logical namespace within the KV store. */
44
- namespace: z.string().min(1)
45
- });
46
- export const DOKSRedisCacheConfigSchema = z.object({
47
- /** Kubernetes namespace (default: vibes). */
48
- namespace: z.string().min(1).default('vibes'),
49
- /** Container image (default: redis:{version}). */
50
- image: z.string().min(1).optional(),
51
- /** Redis version (default: 7). */
52
- version: z.string().min(1).default('7'),
53
- /** Max memory allocation (e.g., '256mb'). */
54
- maxMemory: z.string().optional(),
55
- /** Eviction policy: lru, lfu, or ttl. */
56
- eviction: z.enum(['lru', 'lfu', 'ttl']).optional(),
57
- /** Storage size (default: 1Gi). */
58
- storageSize: z.string().min(1).default('1Gi')
36
+ /**
37
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
38
+ * adapter package defines and parses its own config schema; this kind names
39
+ * no provider, so a config for any adapter — including one contributed by a
40
+ * user plugin — parses here, and the adapter validates its own grammar.
41
+ */
42
+ export const CacheConfigSchema = z.looseObject({
43
+ adapter: z.string().min(1)
59
44
  });
60
- export const CacheConfigSchema = z.union([
61
- DOManagedRedisConfigSchema.extend({ adapter: z.literal('do-managed-redis') }),
62
- CloudflareKVCacheConfigSchema.extend({ adapter: z.literal('cloudflare-kv') }),
63
- DOKSRedisCacheConfigSchema.extend({ adapter: z.literal('doks-redis') })
64
- ]);
65
45
  export const CacheDescriptorSchema = CacheBaseSchema.extend({
66
- /**
67
- * Adapter-specific configuration. Discriminated union — each adapter
68
- * package defines its own config schema under its discriminator key.
69
- */
46
+ /** Adapter-specific configuration, parsed by the adapter that owns it. */
70
47
  config: CacheConfigSchema.optional()
71
48
  });
72
49
  class DefaultCacheImplementation {
73
50
  descriptor;
74
51
  context;
52
+ /** The descriptor as this kind's schema reads it. */
53
+ config;
75
54
  constructor(descriptor, context) {
76
55
  this.descriptor = descriptor;
77
56
  this.context = context;
57
+ this.config = readKindDescriptor(CacheDescriptorSchema, descriptor);
58
+ }
59
+ unavailable() {
60
+ return new CapabilityError(`Cache '${this.descriptor.id}' does not provide the CI byte-store capability.`, 'UNAVAILABLE', {
61
+ reason: 'cache-byte-store-unavailable',
62
+ retryable: false,
63
+ details: { id: this.descriptor.id }
64
+ });
65
+ }
66
+ async get(_key) {
67
+ throw this.unavailable();
78
68
  }
79
- get config() {
80
- return this.descriptor;
69
+ async put(_key, _bytes) {
70
+ throw this.unavailable();
81
71
  }
82
72
  }
83
73
  export const cacheKind = createRuntimeKind({
84
74
  id: 'infra/cache',
85
75
  descriptorSchema: CacheDescriptorSchema,
86
76
  defaultImplementation: DefaultCacheImplementation,
87
- discoveryPattern: INFRA_DISCOVERY_PATTERN,
88
- extractStem
77
+ discoveryPatterns: INFRA_DISCOVERY_PATTERNS
89
78
  });
90
79
  //# sourceMappingURL=cache.kind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.kind.js","sourceRoot":"","sources":["../../src/kinds/cache.kind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.kind.js","sourceRoot":"","sources":["../../src/kinds/cache.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAGjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAG1D,MAAM,eAAe,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACtD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAE9B,oCAAoC;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAEpC,2BAA2B;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEhC,uBAAuB;IACvB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;IAElD,0CAA0C;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC;IAC3D,0EAA0E;IAC1E,MAAM,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAUH,MAAM,0BAA0B;IAId;IACA;IAJjB,qDAAqD;IAC5C,MAAM,CAAkB;IACjC,YACiB,UAA6B,EAC7B,OAAoB;QADpB,eAAU,GAAV,UAAU,CAAmB;QAC7B,YAAO,GAAP,OAAO,CAAa;QAEpC,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAEO,WAAW;QAClB,OAAO,IAAI,eAAe,CACzB,UAAU,IAAI,CAAC,UAAU,CAAC,EAAE,kDAAkD,EAC9E,aAAa,EACb;YACC,MAAM,EAAE,8BAA8B;YACtC,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;SACnC,CACD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACrB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,MAAkB;QACzC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;CACD;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,iBAAiB,CAAuC;IAChF,EAAE,EAAE,aAAa;IACjB,gBAAgB,EAAE,qBAAqB;IACvC,qBAAqB,EAAE,0BAA0B;IACjD,iBAAiB,EAAE,wBAAwB;CAC3C,CAAC,CAAC"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Kind: infra/cluster
3
+ *
4
+ * Provider-neutral Kubernetes cluster descriptor. The base captures the
5
+ * cross-provider shape (region, version, HA, maintenance, observability,
6
+ * SSO, control-plane firewall, gateway API, routing agent). Adapter-specific
7
+ * fields live under `config`.
8
+ */
9
+ import * as z from 'zod/v4';
10
+ import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
11
+ import type { KindContext } from '@vibesdotdev/kernel/schemas/kind';
12
+ /**
13
+ * Inline credential reference schema. Mirrors the public Integrations core
14
+ * credential contract without importing a provider implementation.
15
+ * `CredentialReferenceSchema` to avoid a cross-package dependency from
16
+ * `infra-core` to `connector-base`. Connector packages can still resolve
17
+ * these references through the canonical resolver.
18
+ */
19
+ declare const CredentialReferenceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
20
+ source: z.ZodLiteral<"secret">;
21
+ key: z.ZodString;
22
+ scope: z.ZodOptional<z.ZodString>;
23
+ store: z.ZodOptional<z.ZodString>;
24
+ }, z.core.$strip>, z.ZodObject<{
25
+ source: z.ZodLiteral<"env">;
26
+ key: z.ZodString;
27
+ }, z.core.$strip>], "source">;
28
+ export type ClusterCredentialReference = z.infer<typeof CredentialReferenceSchema>;
29
+ export declare const ClusterMaintenancePolicySchema: z.ZodObject<{
30
+ day: z.ZodString;
31
+ startTime: z.ZodString;
32
+ }, z.core.$strip>;
33
+ export type ClusterMaintenancePolicy = z.infer<typeof ClusterMaintenancePolicySchema>;
34
+ export declare const ClusterControlPlaneFirewallSchema: z.ZodObject<{
35
+ enabled: z.ZodBoolean;
36
+ allowedAddresses: z.ZodDefault<z.ZodArray<z.ZodString>>;
37
+ }, z.core.$strip>;
38
+ export type ClusterControlPlaneFirewall = z.infer<typeof ClusterControlPlaneFirewallSchema>;
39
+ export declare const ClusterSsoSchema: z.ZodObject<{
40
+ enabled: z.ZodBoolean;
41
+ issuerUrl: z.ZodString;
42
+ clientIdSecretRef: z.ZodDiscriminatedUnion<[z.ZodObject<{
43
+ source: z.ZodLiteral<"secret">;
44
+ key: z.ZodString;
45
+ scope: z.ZodOptional<z.ZodString>;
46
+ store: z.ZodOptional<z.ZodString>;
47
+ }, z.core.$strip>, z.ZodObject<{
48
+ source: z.ZodLiteral<"env">;
49
+ key: z.ZodString;
50
+ }, z.core.$strip>], "source">;
51
+ }, z.core.$strip>;
52
+ export type ClusterSso = z.infer<typeof ClusterSsoSchema>;
53
+ export declare const ClusterObservabilitySchema: z.ZodObject<{
54
+ metrics: z.ZodDefault<z.ZodBoolean>;
55
+ logs: z.ZodDefault<z.ZodBoolean>;
56
+ hubble: z.ZodOptional<z.ZodBoolean>;
57
+ }, z.core.$strip>;
58
+ export type ClusterObservability = z.infer<typeof ClusterObservabilitySchema>;
59
+ export declare const ClusterVpcRefSchema: z.ZodObject<{
60
+ uuid: z.ZodOptional<z.ZodString>;
61
+ name: z.ZodOptional<z.ZodString>;
62
+ ipRange: z.ZodOptional<z.ZodString>;
63
+ }, z.core.$strip>;
64
+ export type ClusterVpcRef = z.infer<typeof ClusterVpcRefSchema>;
65
+ /**
66
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
67
+ * adapter package defines and parses its own config schema (DigitalOcean's
68
+ * Kubernetes cluster config lives in
69
+ * `@vibesdotdev/integrations-digitalocean`); this kind names no provider,
70
+ * so a config for any adapter — including one contributed by a user
71
+ * plugin — parses here, and the adapter validates its own grammar.
72
+ */
73
+ export declare const ClusterConfigSchema: z.ZodObject<{
74
+ adapter: z.ZodString;
75
+ }, z.core.$loose>;
76
+ export type ClusterConfig = z.infer<typeof ClusterConfigSchema>;
77
+ export declare const ClusterDescriptorSchema: z.ZodObject<{
78
+ id: z.ZodString;
79
+ name: z.ZodOptional<z.ZodString>;
80
+ description: z.ZodOptional<z.ZodString>;
81
+ hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
82
+ enabled: z.ZodOptional<z.ZodBoolean>;
83
+ priority: z.ZodOptional<z.ZodNumber>;
84
+ capabilityId: z.ZodOptional<z.ZodString>;
85
+ requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
86
+ optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
87
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
88
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
89
+ maxEntries: z.ZodOptional<z.ZodNumber>;
90
+ maxBytes: z.ZodOptional<z.ZodNumber>;
91
+ cascadeFrom: z.ZodOptional<z.ZodString>;
92
+ ageField: z.ZodOptional<z.ZodString>;
93
+ reason: z.ZodString;
94
+ enforcedBy: z.ZodOptional<z.ZodString>;
95
+ }, z.core.$strip>]>>;
96
+ kind: z.ZodLiteral<"infra/cluster">;
97
+ version: z.ZodOptional<z.ZodString>;
98
+ region: z.ZodOptional<z.ZodString>;
99
+ ha: z.ZodOptional<z.ZodBoolean>;
100
+ autoUpgrade: z.ZodOptional<z.ZodBoolean>;
101
+ surgeUpgrade: z.ZodOptional<z.ZodBoolean>;
102
+ maintenancePolicy: z.ZodOptional<z.ZodObject<{
103
+ day: z.ZodString;
104
+ startTime: z.ZodString;
105
+ }, z.core.$strip>>;
106
+ controlPlaneFirewall: z.ZodOptional<z.ZodObject<{
107
+ enabled: z.ZodBoolean;
108
+ allowedAddresses: z.ZodDefault<z.ZodArray<z.ZodString>>;
109
+ }, z.core.$strip>>;
110
+ sso: z.ZodOptional<z.ZodObject<{
111
+ enabled: z.ZodBoolean;
112
+ issuerUrl: z.ZodString;
113
+ clientIdSecretRef: z.ZodDiscriminatedUnion<[z.ZodObject<{
114
+ source: z.ZodLiteral<"secret">;
115
+ key: z.ZodString;
116
+ scope: z.ZodOptional<z.ZodString>;
117
+ store: z.ZodOptional<z.ZodString>;
118
+ }, z.core.$strip>, z.ZodObject<{
119
+ source: z.ZodLiteral<"env">;
120
+ key: z.ZodString;
121
+ }, z.core.$strip>], "source">;
122
+ }, z.core.$strip>>;
123
+ vpc: z.ZodOptional<z.ZodObject<{
124
+ uuid: z.ZodOptional<z.ZodString>;
125
+ name: z.ZodOptional<z.ZodString>;
126
+ ipRange: z.ZodOptional<z.ZodString>;
127
+ }, z.core.$strip>>;
128
+ gatewayApi: z.ZodOptional<z.ZodObject<{
129
+ enabled: z.ZodBoolean;
130
+ }, z.core.$strip>>;
131
+ routingAgent: z.ZodOptional<z.ZodObject<{
132
+ enabled: z.ZodBoolean;
133
+ }, z.core.$strip>>;
134
+ observability: z.ZodOptional<z.ZodObject<{
135
+ metrics: z.ZodDefault<z.ZodBoolean>;
136
+ logs: z.ZodDefault<z.ZodBoolean>;
137
+ hubble: z.ZodOptional<z.ZodBoolean>;
138
+ }, z.core.$strip>>;
139
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
140
+ config: z.ZodOptional<z.ZodObject<{
141
+ adapter: z.ZodString;
142
+ }, z.core.$loose>>;
143
+ }, z.core.$strip>;
144
+ export type ClusterDescriptor = z.infer<typeof ClusterDescriptorSchema>;
145
+ declare class DefaultClusterImplementation {
146
+ readonly descriptor: RuntimeDescriptor;
147
+ readonly context: KindContext;
148
+ /** The descriptor as this kind's schema reads it. */
149
+ readonly config: ClusterDescriptor;
150
+ constructor(descriptor: RuntimeDescriptor, context: KindContext);
151
+ }
152
+ export declare const clusterKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DefaultClusterImplementation>;
153
+ export {};
154
+ //# sourceMappingURL=cluster.kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/cluster.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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;;;;;;GAMG;AACH,QAAA,MAAM,yBAAyB;;;;;;;;6BAG7B,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEnF,eAAO,MAAM,8BAA8B;;;iBAKzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,iCAAiC;;;iBAG5C,CAAC;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,gBAAgB;;;;;;;;;;;;iBAI3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,0BAA0B;;;;iBAIrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAqBhE;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,cAAM,4BAA4B;aAIhB,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,WAAW;IAJrC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;gBAElB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,WAAW;CAKrC;AAED,eAAO,MAAM,WAAW,yFAKtB,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Kind: infra/cluster
3
+ *
4
+ * Provider-neutral Kubernetes cluster descriptor. The base captures the
5
+ * cross-provider shape (region, version, HA, maintenance, observability,
6
+ * SSO, control-plane firewall, gateway API, routing agent). Adapter-specific
7
+ * fields live under `config`.
8
+ */
9
+ import * as z from 'zod/v4';
10
+ import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
11
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
12
+ import { readKindDescriptor } from "./read-descriptor.js";
13
+ import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
14
+ /**
15
+ * Inline credential reference schema. Mirrors the public Integrations core
16
+ * credential contract without importing a provider implementation.
17
+ * `CredentialReferenceSchema` to avoid a cross-package dependency from
18
+ * `infra-core` to `connector-base`. Connector packages can still resolve
19
+ * these references through the canonical resolver.
20
+ */
21
+ const CredentialReferenceSchema = z.discriminatedUnion('source', [
22
+ z.object({ source: z.literal('secret'), key: z.string(), scope: z.string().optional(), store: z.string().optional() }),
23
+ z.object({ source: z.literal('env'), key: z.string() })
24
+ ]);
25
+ export const ClusterMaintenancePolicySchema = z.object({
26
+ /** Day of week (any|monday|...|sunday). */
27
+ day: z.string().min(1),
28
+ /** UTC start time, HH:MM. */
29
+ startTime: z.string().regex(/^\d{2}:\d{2}$/)
30
+ });
31
+ export const ClusterControlPlaneFirewallSchema = z.object({
32
+ enabled: z.boolean(),
33
+ allowedAddresses: z.array(z.string()).default([])
34
+ });
35
+ export const ClusterSsoSchema = z.object({
36
+ enabled: z.boolean(),
37
+ issuerUrl: z.string().url(),
38
+ clientIdSecretRef: CredentialReferenceSchema
39
+ });
40
+ export const ClusterObservabilitySchema = z.object({
41
+ metrics: z.boolean().default(false),
42
+ logs: z.boolean().default(false),
43
+ hubble: z.boolean().optional()
44
+ });
45
+ export const ClusterVpcRefSchema = z.object({
46
+ uuid: z.string().optional(),
47
+ name: z.string().optional(),
48
+ ipRange: z.string().optional()
49
+ });
50
+ const ClusterBaseSchema = RuntimeDescriptorSchema.extend({
51
+ kind: z.literal('infra/cluster'),
52
+ /** Kubernetes version slug (provider-specific). */
53
+ version: z.string().min(1).optional(),
54
+ /** Region slug. */
55
+ region: z.string().min(1).optional(),
56
+ ha: z.boolean().optional(),
57
+ autoUpgrade: z.boolean().optional(),
58
+ surgeUpgrade: z.boolean().optional(),
59
+ maintenancePolicy: ClusterMaintenancePolicySchema.optional(),
60
+ controlPlaneFirewall: ClusterControlPlaneFirewallSchema.optional(),
61
+ sso: ClusterSsoSchema.optional(),
62
+ vpc: ClusterVpcRefSchema.optional(),
63
+ gatewayApi: z.object({ enabled: z.boolean() }).optional(),
64
+ routingAgent: z.object({ enabled: z.boolean() }).optional(),
65
+ observability: ClusterObservabilitySchema.optional(),
66
+ tags: z.array(z.string()).optional()
67
+ });
68
+ /**
69
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
70
+ * adapter package defines and parses its own config schema (DigitalOcean's
71
+ * Kubernetes cluster config lives in
72
+ * `@vibesdotdev/integrations-digitalocean`); this kind names no provider,
73
+ * so a config for any adapter — including one contributed by a user
74
+ * plugin — parses here, and the adapter validates its own grammar.
75
+ */
76
+ export const ClusterConfigSchema = z.looseObject({
77
+ adapter: z.string().min(1)
78
+ });
79
+ export const ClusterDescriptorSchema = ClusterBaseSchema.extend({
80
+ config: ClusterConfigSchema.optional()
81
+ });
82
+ class DefaultClusterImplementation {
83
+ descriptor;
84
+ context;
85
+ /** The descriptor as this kind's schema reads it. */
86
+ config;
87
+ constructor(descriptor, context) {
88
+ this.descriptor = descriptor;
89
+ this.context = context;
90
+ this.config = readKindDescriptor(ClusterDescriptorSchema, descriptor);
91
+ }
92
+ }
93
+ export const clusterKind = createRuntimeKind({
94
+ id: 'infra/cluster',
95
+ descriptorSchema: ClusterDescriptorSchema,
96
+ defaultImplementation: DefaultClusterImplementation,
97
+ discoveryPatterns: INFRA_DISCOVERY_PATTERNS
98
+ });
99
+ //# sourceMappingURL=cluster.kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster.kind.js","sourceRoot":"","sources":["../../src/kinds/cluster.kind.ts"],"names":[],"mappings":"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"}