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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +27 -1
  3. package/dist/bootstrap/seed.descriptor.d.ts +1 -1
  4. package/dist/bootstrap/seed.descriptor.d.ts.map +1 -1
  5. package/dist/bootstrap/seed.descriptor.js +1 -1
  6. package/dist/bootstrap/seed.descriptor.js.map +1 -1
  7. package/dist/bootstrap/seed.impl-shape.d.ts +1 -1
  8. package/dist/bootstrap/seed.impl-shape.d.ts.map +1 -1
  9. package/dist/bootstrap/seed.kind.d.ts +1 -3
  10. package/dist/bootstrap/seed.kind.d.ts.map +1 -1
  11. package/dist/bootstrap/seed.kind.js +17 -4
  12. package/dist/bootstrap/seed.kind.js.map +1 -1
  13. package/dist/bootstrap/seed.runner.d.ts +9 -2
  14. package/dist/bootstrap/seed.runner.d.ts.map +1 -1
  15. package/dist/bootstrap/seed.runner.js +37 -18
  16. package/dist/bootstrap/seed.runner.js.map +1 -1
  17. package/dist/capped-id.d.ts +19 -0
  18. package/dist/capped-id.d.ts.map +1 -0
  19. package/dist/capped-id.js +64 -0
  20. package/dist/capped-id.js.map +1 -0
  21. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.d.ts +23 -0
  22. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.d.ts.map +1 -0
  23. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.js +33 -0
  24. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.js.map +1 -0
  25. package/dist/cli/generate/artifact/artifact.cli-command.impl.d.ts +24 -0
  26. package/dist/cli/generate/artifact/artifact.cli-command.impl.d.ts.map +1 -0
  27. package/dist/cli/generate/artifact/artifact.cli-command.impl.js +73 -0
  28. package/dist/cli/generate/artifact/artifact.cli-command.impl.js.map +1 -0
  29. package/dist/cli/generate/context.d.ts +17 -0
  30. package/dist/cli/generate/context.d.ts.map +1 -0
  31. package/dist/cli/generate/context.js +24 -0
  32. package/dist/cli/generate/context.js.map +1 -0
  33. package/dist/cli/generate/generate/generate.cli-command.descriptor.d.ts +30 -0
  34. package/dist/cli/generate/generate/generate.cli-command.descriptor.d.ts.map +1 -0
  35. package/dist/cli/generate/generate/generate.cli-command.descriptor.js +25 -0
  36. package/dist/cli/generate/generate/generate.cli-command.descriptor.js.map +1 -0
  37. package/dist/cli/generate/generate/generate.cli-command.impl.d.ts +25 -0
  38. package/dist/cli/generate/generate/generate.cli-command.impl.d.ts.map +1 -0
  39. package/dist/cli/generate/generate/generate.cli-command.impl.js +64 -0
  40. package/dist/cli/generate/generate/generate.cli-command.impl.js.map +1 -0
  41. package/dist/cli/generate/generate-core.d.ts +51 -0
  42. package/dist/cli/generate/generate-core.d.ts.map +1 -0
  43. package/dist/cli/generate/generate-core.js +172 -0
  44. package/dist/cli/generate/generate-core.js.map +1 -0
  45. package/dist/cli/generate/index.d.ts +5 -0
  46. package/dist/cli/generate/index.d.ts.map +1 -0
  47. package/dist/cli/generate/index.js +5 -0
  48. package/dist/cli/generate/index.js.map +1 -0
  49. package/dist/credentials/resolve.d.ts +82 -22
  50. package/dist/credentials/resolve.d.ts.map +1 -1
  51. package/dist/credentials/resolve.js +251 -77
  52. package/dist/credentials/resolve.js.map +1 -1
  53. package/dist/deployment-environment.d.ts +30 -0
  54. package/dist/deployment-environment.d.ts.map +1 -0
  55. package/dist/deployment-environment.js +53 -0
  56. package/dist/deployment-environment.js.map +1 -0
  57. package/dist/deployment.d.ts +8 -4
  58. package/dist/deployment.d.ts.map +1 -1
  59. package/dist/deployment.js +30 -0
  60. package/dist/deployment.js.map +1 -1
  61. package/dist/doks/cloud/base.d.ts +49 -0
  62. package/dist/doks/cloud/base.d.ts.map +1 -0
  63. package/dist/doks/cloud/base.js +138 -0
  64. package/dist/doks/cloud/base.js.map +1 -0
  65. package/dist/doks/cloud/factory.d.ts +18 -0
  66. package/dist/doks/cloud/factory.d.ts.map +1 -0
  67. package/dist/doks/cloud/factory.js +22 -0
  68. package/dist/doks/cloud/factory.js.map +1 -0
  69. package/dist/doks/cloud/index.d.ts +5 -0
  70. package/dist/doks/cloud/index.d.ts.map +1 -0
  71. package/dist/doks/cloud/index.js +4 -0
  72. package/dist/doks/cloud/index.js.map +1 -0
  73. package/dist/doks/types.d.ts +95 -0
  74. package/dist/doks/types.d.ts.map +1 -0
  75. package/dist/doks/types.js +14 -0
  76. package/dist/doks/types.js.map +1 -0
  77. package/dist/generate/index.d.ts +29 -0
  78. package/dist/generate/index.d.ts.map +1 -0
  79. package/dist/generate/index.js +28 -0
  80. package/dist/generate/index.js.map +1 -0
  81. package/dist/generate/infra-generate.plugin.d.ts +3 -0
  82. package/dist/generate/infra-generate.plugin.d.ts.map +1 -0
  83. package/dist/generate/infra-generate.plugin.js +23 -0
  84. package/dist/generate/infra-generate.plugin.js.map +1 -0
  85. package/dist/generate/plugin.d.ts +2 -0
  86. package/dist/generate/plugin.d.ts.map +1 -0
  87. package/dist/generate/plugin.js +2 -0
  88. package/dist/generate/plugin.js.map +1 -0
  89. package/dist/heartbeat/cron-heartbeat.d.ts +97 -0
  90. package/dist/heartbeat/cron-heartbeat.d.ts.map +1 -0
  91. package/dist/heartbeat/cron-heartbeat.js +200 -0
  92. package/dist/heartbeat/cron-heartbeat.js.map +1 -0
  93. package/dist/index.d.ts +34 -20
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +28 -14
  96. package/dist/index.js.map +1 -1
  97. package/dist/infra.plugin.d.ts +1 -1
  98. package/dist/infra.plugin.d.ts.map +1 -1
  99. package/dist/infra.plugin.js +62 -12
  100. package/dist/infra.plugin.js.map +1 -1
  101. package/dist/kinds/alerts.kind.d.ts +64 -25
  102. package/dist/kinds/alerts.kind.d.ts.map +1 -1
  103. package/dist/kinds/alerts.kind.js +43 -16
  104. package/dist/kinds/alerts.kind.js.map +1 -1
  105. package/dist/kinds/artifact.kind.d.ts +58 -10
  106. package/dist/kinds/artifact.kind.d.ts.map +1 -1
  107. package/dist/kinds/artifact.kind.js +26 -9
  108. package/dist/kinds/artifact.kind.js.map +1 -1
  109. package/dist/kinds/billing.kind.d.ts +88 -0
  110. package/dist/kinds/billing.kind.d.ts.map +1 -0
  111. package/dist/kinds/billing.kind.js +48 -0
  112. package/dist/kinds/billing.kind.js.map +1 -0
  113. package/dist/kinds/build-job.kind.d.ts +381 -0
  114. package/dist/kinds/build-job.kind.d.ts.map +1 -0
  115. package/dist/kinds/build-job.kind.js +216 -0
  116. package/dist/kinds/build-job.kind.js.map +1 -0
  117. package/dist/kinds/cache.kind.d.ts +39 -92
  118. package/dist/kinds/cache.kind.d.ts.map +1 -1
  119. package/dist/kinds/cache.kind.js +26 -51
  120. package/dist/kinds/cache.kind.js.map +1 -1
  121. package/dist/kinds/cluster.kind.d.ts +154 -0
  122. package/dist/kinds/cluster.kind.d.ts.map +1 -0
  123. package/dist/kinds/cluster.kind.js +99 -0
  124. package/dist/kinds/cluster.kind.js.map +1 -0
  125. package/dist/kinds/compute-source.kind.d.ts +138 -0
  126. package/dist/kinds/compute-source.kind.d.ts.map +1 -0
  127. package/dist/kinds/compute-source.kind.js +145 -0
  128. package/dist/kinds/compute-source.kind.js.map +1 -0
  129. package/dist/kinds/compute-sources.descriptors.d.ts +45 -0
  130. package/dist/kinds/compute-sources.descriptors.d.ts.map +1 -0
  131. package/dist/kinds/compute-sources.descriptors.js +93 -0
  132. package/dist/kinds/compute-sources.descriptors.js.map +1 -0
  133. package/dist/kinds/container-registry.kind.d.ts +62 -0
  134. package/dist/kinds/container-registry.kind.d.ts.map +1 -0
  135. package/dist/kinds/container-registry.kind.js +47 -0
  136. package/dist/kinds/container-registry.kind.js.map +1 -0
  137. package/dist/kinds/database-migrator.kind.d.ts +6 -0
  138. package/dist/kinds/database-migrator.kind.d.ts.map +1 -0
  139. package/dist/kinds/database-migrator.kind.js +28 -0
  140. package/dist/kinds/database-migrator.kind.js.map +1 -0
  141. package/dist/kinds/database.kind.d.ts +114 -93
  142. package/dist/kinds/database.kind.d.ts.map +1 -1
  143. package/dist/kinds/database.kind.js +93 -54
  144. package/dist/kinds/database.kind.js.map +1 -1
  145. package/dist/kinds/deployment-provider.kind.d.ts +5 -0
  146. package/dist/kinds/deployment-provider.kind.d.ts.map +1 -0
  147. package/dist/kinds/deployment-provider.kind.js +11 -0
  148. package/dist/kinds/deployment-provider.kind.js.map +1 -0
  149. package/dist/kinds/discovery.d.ts +5 -12
  150. package/dist/kinds/discovery.d.ts.map +1 -1
  151. package/dist/kinds/discovery.js +5 -17
  152. package/dist/kinds/discovery.js.map +1 -1
  153. package/dist/kinds/dns.kind.d.ts +162 -0
  154. package/dist/kinds/dns.kind.d.ts.map +1 -0
  155. package/dist/kinds/dns.kind.js +54 -0
  156. package/dist/kinds/dns.kind.js.map +1 -0
  157. package/dist/kinds/drift.kind.d.ts +115 -0
  158. package/dist/kinds/drift.kind.d.ts.map +1 -0
  159. package/dist/kinds/drift.kind.js +60 -0
  160. package/dist/kinds/drift.kind.js.map +1 -0
  161. package/dist/kinds/edge-tls.kind.d.ts +194 -0
  162. package/dist/kinds/edge-tls.kind.d.ts.map +1 -0
  163. package/dist/kinds/edge-tls.kind.js +58 -0
  164. package/dist/kinds/edge-tls.kind.js.map +1 -0
  165. package/dist/kinds/firewall.kind.d.ts +92 -0
  166. package/dist/kinds/firewall.kind.d.ts.map +1 -0
  167. package/dist/kinds/firewall.kind.js +59 -0
  168. package/dist/kinds/firewall.kind.js.map +1 -0
  169. package/dist/kinds/git-hosting.kind.d.ts +36 -38
  170. package/dist/kinds/git-hosting.kind.d.ts.map +1 -1
  171. package/dist/kinds/git-hosting.kind.js +21 -32
  172. package/dist/kinds/git-hosting.kind.js.map +1 -1
  173. package/dist/kinds/index.d.ts +40 -15
  174. package/dist/kinds/index.d.ts.map +1 -1
  175. package/dist/kinds/index.js +39 -14
  176. package/dist/kinds/index.js.map +1 -1
  177. package/dist/kinds/inventory.kind.d.ts +326 -0
  178. package/dist/kinds/inventory.kind.d.ts.map +1 -0
  179. package/dist/kinds/inventory.kind.js +188 -0
  180. package/dist/kinds/inventory.kind.js.map +1 -0
  181. package/dist/kinds/load-balancer.kind.d.ts +135 -0
  182. package/dist/kinds/load-balancer.kind.d.ts.map +1 -0
  183. package/dist/kinds/load-balancer.kind.js +71 -0
  184. package/dist/kinds/load-balancer.kind.js.map +1 -0
  185. package/dist/kinds/logs.kind.d.ts +74 -3
  186. package/dist/kinds/logs.kind.d.ts.map +1 -1
  187. package/dist/kinds/logs.kind.js +26 -17
  188. package/dist/kinds/logs.kind.js.map +1 -1
  189. package/dist/kinds/nfs.kind.d.ts +67 -0
  190. package/dist/kinds/nfs.kind.d.ts.map +1 -0
  191. package/dist/kinds/nfs.kind.js +45 -0
  192. package/dist/kinds/nfs.kind.js.map +1 -0
  193. package/dist/kinds/node-pool.kind.d.ts +134 -0
  194. package/dist/kinds/node-pool.kind.d.ts.map +1 -0
  195. package/dist/kinds/node-pool.kind.js +88 -0
  196. package/dist/kinds/node-pool.kind.js.map +1 -0
  197. package/dist/kinds/object-storage.kind.d.ts +50 -24
  198. package/dist/kinds/object-storage.kind.d.ts.map +1 -1
  199. package/dist/kinds/object-storage.kind.js +40 -23
  200. package/dist/kinds/object-storage.kind.js.map +1 -1
  201. package/dist/kinds/observability.kind.d.ts +104 -6
  202. package/dist/kinds/observability.kind.d.ts.map +1 -1
  203. package/dist/kinds/observability.kind.js +67 -9
  204. package/dist/kinds/observability.kind.js.map +1 -1
  205. package/dist/kinds/package-registry.kind.d.ts +25 -29
  206. package/dist/kinds/package-registry.kind.d.ts.map +1 -1
  207. package/dist/kinds/package-registry.kind.js +12 -25
  208. package/dist/kinds/package-registry.kind.js.map +1 -1
  209. package/dist/kinds/queue.kind.d.ts +67 -63
  210. package/dist/kinds/queue.kind.d.ts.map +1 -1
  211. package/dist/kinds/queue.kind.js +55 -33
  212. package/dist/kinds/queue.kind.js.map +1 -1
  213. package/dist/kinds/read-descriptor.d.ts +15 -0
  214. package/dist/kinds/read-descriptor.d.ts.map +1 -0
  215. package/dist/kinds/read-descriptor.js +11 -0
  216. package/dist/kinds/read-descriptor.js.map +1 -0
  217. package/dist/kinds/rum.kind.d.ts +36 -6
  218. package/dist/kinds/rum.kind.d.ts.map +1 -1
  219. package/dist/kinds/rum.kind.js +6 -7
  220. package/dist/kinds/rum.kind.js.map +1 -1
  221. package/dist/kinds/sandbox.kind.d.ts +136 -36
  222. package/dist/kinds/sandbox.kind.d.ts.map +1 -1
  223. package/dist/kinds/sandbox.kind.js +80 -34
  224. package/dist/kinds/sandbox.kind.js.map +1 -1
  225. package/dist/kinds/select-compute-source.d.ts +72 -0
  226. package/dist/kinds/select-compute-source.d.ts.map +1 -0
  227. package/dist/kinds/select-compute-source.js +170 -0
  228. package/dist/kinds/select-compute-source.js.map +1 -0
  229. package/dist/kinds/service-release.kind.d.ts +771 -0
  230. package/dist/kinds/service-release.kind.d.ts.map +1 -0
  231. package/dist/kinds/service-release.kind.js +676 -0
  232. package/dist/kinds/service-release.kind.js.map +1 -0
  233. package/dist/kinds/spend-guard.kind.d.ts +40 -0
  234. package/dist/kinds/spend-guard.kind.d.ts.map +1 -0
  235. package/dist/kinds/spend-guard.kind.js +133 -0
  236. package/dist/kinds/spend-guard.kind.js.map +1 -0
  237. package/dist/kinds/utilization.kind.d.ts +88 -0
  238. package/dist/kinds/utilization.kind.d.ts.map +1 -0
  239. package/dist/kinds/utilization.kind.js +62 -0
  240. package/dist/kinds/utilization.kind.js.map +1 -0
  241. package/dist/kinds/volume.kind.d.ts +54 -0
  242. package/dist/kinds/volume.kind.d.ts.map +1 -0
  243. package/dist/kinds/volume.kind.js +39 -0
  244. package/dist/kinds/volume.kind.js.map +1 -0
  245. package/dist/kinds/vpc.kind.d.ts +61 -0
  246. package/dist/kinds/vpc.kind.d.ts.map +1 -0
  247. package/dist/kinds/vpc.kind.js +51 -0
  248. package/dist/kinds/vpc.kind.js.map +1 -0
  249. package/dist/kinds/web-app.kind.d.ts +115 -45
  250. package/dist/kinds/web-app.kind.d.ts.map +1 -1
  251. package/dist/kinds/web-app.kind.js +69 -42
  252. package/dist/kinds/web-app.kind.js.map +1 -1
  253. package/dist/kinds/worker.kind.d.ts +291 -188
  254. package/dist/kinds/worker.kind.d.ts.map +1 -1
  255. package/dist/kinds/worker.kind.js +45 -123
  256. package/dist/kinds/worker.kind.js.map +1 -1
  257. package/dist/schemas/database-migration.d.ts +173 -0
  258. package/dist/schemas/database-migration.d.ts.map +1 -0
  259. package/dist/schemas/database-migration.js +88 -0
  260. package/dist/schemas/database-migration.js.map +1 -0
  261. package/dist/schemas/deployment-environment.d.ts +11 -0
  262. package/dist/schemas/deployment-environment.d.ts.map +1 -0
  263. package/dist/schemas/deployment-environment.js +9 -0
  264. package/dist/schemas/deployment-environment.js.map +1 -0
  265. package/dist/schemas/deployment-provider.d.ts +336 -0
  266. package/dist/schemas/deployment-provider.d.ts.map +1 -0
  267. package/dist/schemas/deployment-provider.js +198 -0
  268. package/dist/schemas/deployment-provider.js.map +1 -0
  269. package/dist/schemas/log-stream.d.ts +27 -0
  270. package/dist/schemas/log-stream.d.ts.map +1 -0
  271. package/dist/schemas/log-stream.js +31 -0
  272. package/dist/schemas/log-stream.js.map +1 -0
  273. package/dist/schemas/spend-guard.d.ts +155 -0
  274. package/dist/schemas/spend-guard.d.ts.map +1 -0
  275. package/dist/schemas/spend-guard.js +61 -0
  276. package/dist/schemas/spend-guard.js.map +1 -0
  277. package/dist/schemas.d.ts +190 -20
  278. package/dist/schemas.d.ts.map +1 -1
  279. package/dist/schemas.js +137 -31
  280. package/dist/schemas.js.map +1 -1
  281. package/dist/service.d.ts +87 -0
  282. package/dist/service.d.ts.map +1 -0
  283. package/dist/service.js +199 -0
  284. package/dist/service.js.map +1 -0
  285. package/dist/settle-work.d.ts +20 -0
  286. package/dist/settle-work.d.ts.map +1 -0
  287. package/dist/settle-work.js +22 -0
  288. package/dist/settle-work.js.map +1 -0
  289. package/dist/web-app-projection.d.ts +132 -0
  290. package/dist/web-app-projection.d.ts.map +1 -0
  291. package/dist/web-app-projection.js +93 -0
  292. package/dist/web-app-projection.js.map +1 -0
  293. package/package.json +87 -36
  294. package/src/bootstrap/index.ts +0 -15
  295. package/src/bootstrap/seed.descriptor.ts +0 -24
  296. package/src/bootstrap/seed.impl-shape.ts +0 -5
  297. package/src/bootstrap/seed.kind.ts +0 -26
  298. package/src/bootstrap/seed.runner.ts +0 -87
  299. package/src/credentials/resolve.ts +0 -205
  300. package/src/deployment.ts +0 -57
  301. package/src/index.ts +0 -149
  302. package/src/infra.plugin.ts +0 -54
  303. package/src/kinds/alerts.kind.ts +0 -164
  304. package/src/kinds/artifact.kind.ts +0 -96
  305. package/src/kinds/cache.kind.ts +0 -104
  306. package/src/kinds/database.kind.ts +0 -120
  307. package/src/kinds/discovery.ts +0 -26
  308. package/src/kinds/git-hosting.kind.ts +0 -100
  309. package/src/kinds/index.ts +0 -139
  310. package/src/kinds/logs.kind.ts +0 -104
  311. package/src/kinds/object-storage.kind.ts +0 -101
  312. package/src/kinds/observability.kind.ts +0 -178
  313. package/src/kinds/package-registry.kind.ts +0 -95
  314. package/src/kinds/queue.kind.ts +0 -102
  315. package/src/kinds/rum.kind.ts +0 -135
  316. package/src/kinds/sandbox.kind.ts +0 -115
  317. package/src/kinds/web-app.kind.ts +0 -103
  318. package/src/kinds/worker.kind.ts +0 -203
  319. package/src/schemas.ts +0 -127
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Kind: infra/load-balancer
3
+ *
4
+ * Provider-neutral load balancer descriptor.
5
+ *
6
+ * `config` is an open, adapter-keyed shape (DigitalOcean's load balancer
7
+ * config lives in `@vibesdotdev/integrations-digitalocean`); this kind
8
+ * names no provider, so a config for any adapter parses here and the
9
+ * adapter validates its own grammar.
10
+ */
11
+ import * as z from 'zod/v4';
12
+ import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
13
+ import type { KindContext } from '@vibesdotdev/kernel/schemas/kind';
14
+ export declare const LoadBalancerForwardingRuleSchema: z.ZodObject<{
15
+ entryProtocol: z.ZodEnum<{
16
+ tcp: "tcp";
17
+ http: "http";
18
+ udp: "udp";
19
+ https: "https";
20
+ http2: "http2";
21
+ http3: "http3";
22
+ }>;
23
+ entryPort: z.ZodNumber;
24
+ targetProtocol: z.ZodEnum<{
25
+ tcp: "tcp";
26
+ http: "http";
27
+ udp: "udp";
28
+ https: "https";
29
+ http2: "http2";
30
+ }>;
31
+ targetPort: z.ZodNumber;
32
+ certificateId: z.ZodOptional<z.ZodString>;
33
+ tlsPassthrough: z.ZodOptional<z.ZodBoolean>;
34
+ }, z.core.$strip>;
35
+ export type LoadBalancerForwardingRule = z.infer<typeof LoadBalancerForwardingRuleSchema>;
36
+ export declare const LoadBalancerHealthCheckSchema: z.ZodObject<{
37
+ protocol: z.ZodEnum<{
38
+ tcp: "tcp";
39
+ http: "http";
40
+ https: "https";
41
+ }>;
42
+ port: z.ZodOptional<z.ZodNumber>;
43
+ path: z.ZodOptional<z.ZodString>;
44
+ checkIntervalSeconds: z.ZodOptional<z.ZodNumber>;
45
+ responseTimeoutSeconds: z.ZodOptional<z.ZodNumber>;
46
+ unhealthyThreshold: z.ZodOptional<z.ZodNumber>;
47
+ healthyThreshold: z.ZodOptional<z.ZodNumber>;
48
+ }, z.core.$strip>;
49
+ export type LoadBalancerHealthCheck = z.infer<typeof LoadBalancerHealthCheckSchema>;
50
+ /**
51
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
52
+ * adapter package defines and parses its own config schema; this kind names
53
+ * no provider, so a config for any adapter — including one contributed by a
54
+ * user plugin — parses here, and the adapter validates its own grammar.
55
+ */
56
+ export declare const LoadBalancerConfigSchema: z.ZodObject<{
57
+ adapter: z.ZodString;
58
+ }, z.core.$loose>;
59
+ export type LoadBalancerConfig = z.infer<typeof LoadBalancerConfigSchema>;
60
+ export declare const LoadBalancerDescriptorSchema: z.ZodObject<{
61
+ id: z.ZodString;
62
+ name: z.ZodOptional<z.ZodString>;
63
+ description: z.ZodOptional<z.ZodString>;
64
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
65
+ hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
+ enabled: z.ZodOptional<z.ZodBoolean>;
67
+ priority: z.ZodOptional<z.ZodNumber>;
68
+ capabilityId: z.ZodOptional<z.ZodString>;
69
+ requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
70
+ optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
71
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
72
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
73
+ maxEntries: z.ZodOptional<z.ZodNumber>;
74
+ maxBytes: z.ZodOptional<z.ZodNumber>;
75
+ cascadeFrom: z.ZodOptional<z.ZodString>;
76
+ ageField: z.ZodOptional<z.ZodString>;
77
+ reason: z.ZodString;
78
+ enforcedBy: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>]>>;
80
+ kind: z.ZodLiteral<"infra/load-balancer">;
81
+ region: z.ZodOptional<z.ZodString>;
82
+ forwardingRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
83
+ entryProtocol: z.ZodEnum<{
84
+ tcp: "tcp";
85
+ http: "http";
86
+ udp: "udp";
87
+ https: "https";
88
+ http2: "http2";
89
+ http3: "http3";
90
+ }>;
91
+ entryPort: z.ZodNumber;
92
+ targetProtocol: z.ZodEnum<{
93
+ tcp: "tcp";
94
+ http: "http";
95
+ udp: "udp";
96
+ https: "https";
97
+ http2: "http2";
98
+ }>;
99
+ targetPort: z.ZodNumber;
100
+ certificateId: z.ZodOptional<z.ZodString>;
101
+ tlsPassthrough: z.ZodOptional<z.ZodBoolean>;
102
+ }, z.core.$strip>>>;
103
+ healthCheck: z.ZodOptional<z.ZodObject<{
104
+ protocol: z.ZodEnum<{
105
+ tcp: "tcp";
106
+ http: "http";
107
+ https: "https";
108
+ }>;
109
+ port: z.ZodOptional<z.ZodNumber>;
110
+ path: z.ZodOptional<z.ZodString>;
111
+ checkIntervalSeconds: z.ZodOptional<z.ZodNumber>;
112
+ responseTimeoutSeconds: z.ZodOptional<z.ZodNumber>;
113
+ unhealthyThreshold: z.ZodOptional<z.ZodNumber>;
114
+ healthyThreshold: z.ZodOptional<z.ZodNumber>;
115
+ }, z.core.$strip>>;
116
+ algorithm: z.ZodOptional<z.ZodEnum<{
117
+ round_robin: "round_robin";
118
+ least_connections: "least_connections";
119
+ }>>;
120
+ redirectHttpToHttps: z.ZodOptional<z.ZodBoolean>;
121
+ config: z.ZodOptional<z.ZodObject<{
122
+ adapter: z.ZodString;
123
+ }, z.core.$loose>>;
124
+ }, z.core.$strip>;
125
+ export type LoadBalancerDescriptor = z.infer<typeof LoadBalancerDescriptorSchema>;
126
+ declare class DefaultLoadBalancerImplementation {
127
+ readonly descriptor: RuntimeDescriptor;
128
+ readonly context: KindContext;
129
+ /** The descriptor as this kind's schema reads it. */
130
+ readonly config: LoadBalancerDescriptor;
131
+ constructor(descriptor: RuntimeDescriptor, context: KindContext);
132
+ }
133
+ export declare const loadBalancerKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DefaultLoadBalancerImplementation>;
134
+ export {};
135
+ //# sourceMappingURL=load-balancer.kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-balancer.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/load-balancer.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;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,gCAAgC;;;;;;;;;;;;;;;;;;;;iBAO3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,6BAA6B;;;;;;;;;;;;iBAQxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAWpF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;iBAEnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,cAAM,iCAAiC;aAIrB,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,WAAW;IAJrC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;gBAEvB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,WAAW;CAKrC;AAED,eAAO,MAAM,gBAAgB,8FAK3B,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Kind: infra/load-balancer
3
+ *
4
+ * Provider-neutral load balancer descriptor.
5
+ *
6
+ * `config` is an open, adapter-keyed shape (DigitalOcean's load balancer
7
+ * config lives in `@vibesdotdev/integrations-digitalocean`); this kind
8
+ * names no provider, so a config for any adapter parses here and the
9
+ * adapter validates its own grammar.
10
+ */
11
+ import * as z from 'zod/v4';
12
+ import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
13
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
14
+ import { readKindDescriptor } from "./read-descriptor.js";
15
+ import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
16
+ export const LoadBalancerForwardingRuleSchema = z.object({
17
+ entryProtocol: z.enum(['http', 'https', 'http2', 'http3', 'tcp', 'udp']),
18
+ entryPort: z.number().int().positive(),
19
+ targetProtocol: z.enum(['http', 'https', 'http2', 'tcp', 'udp']),
20
+ targetPort: z.number().int().positive(),
21
+ certificateId: z.string().optional(),
22
+ tlsPassthrough: z.boolean().optional()
23
+ });
24
+ export const LoadBalancerHealthCheckSchema = z.object({
25
+ protocol: z.enum(['http', 'https', 'tcp']),
26
+ port: z.number().int().positive().optional(),
27
+ path: z.string().optional(),
28
+ checkIntervalSeconds: z.number().int().positive().optional(),
29
+ responseTimeoutSeconds: z.number().int().positive().optional(),
30
+ unhealthyThreshold: z.number().int().positive().optional(),
31
+ healthyThreshold: z.number().int().positive().optional()
32
+ });
33
+ const LoadBalancerBaseSchema = RuntimeDescriptorSchema.extend({
34
+ kind: z.literal('infra/load-balancer'),
35
+ region: z.string().min(1).optional(),
36
+ forwardingRules: z.array(LoadBalancerForwardingRuleSchema).optional(),
37
+ healthCheck: LoadBalancerHealthCheckSchema.optional(),
38
+ algorithm: z.enum(['round_robin', 'least_connections']).optional(),
39
+ redirectHttpToHttps: z.boolean().optional()
40
+ });
41
+ /**
42
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
43
+ * adapter package defines and parses its own config schema; this kind names
44
+ * no provider, so a config for any adapter — including one contributed by a
45
+ * user plugin — parses here, and the adapter validates its own grammar.
46
+ */
47
+ export const LoadBalancerConfigSchema = z.looseObject({
48
+ adapter: z.string().min(1)
49
+ });
50
+ export const LoadBalancerDescriptorSchema = LoadBalancerBaseSchema.extend({
51
+ /** Adapter-specific configuration, parsed by the adapter that owns it. */
52
+ config: LoadBalancerConfigSchema.optional()
53
+ });
54
+ class DefaultLoadBalancerImplementation {
55
+ descriptor;
56
+ context;
57
+ /** The descriptor as this kind's schema reads it. */
58
+ config;
59
+ constructor(descriptor, context) {
60
+ this.descriptor = descriptor;
61
+ this.context = context;
62
+ this.config = readKindDescriptor(LoadBalancerDescriptorSchema, descriptor);
63
+ }
64
+ }
65
+ export const loadBalancerKind = createRuntimeKind({
66
+ id: 'infra/load-balancer',
67
+ descriptorSchema: LoadBalancerDescriptorSchema,
68
+ defaultImplementation: DefaultLoadBalancerImplementation,
69
+ discoveryPatterns: INFRA_DISCOVERY_PATTERNS
70
+ });
71
+ //# sourceMappingURL=load-balancer.kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-balancer.kind.js","sourceRoot":"","sources":["../../src/kinds/load-balancer.kind.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,10 @@
5
5
  * Provides programmatic access to logs for tailing, queries, and analytics.
6
6
  */
7
7
  import * as z from 'zod/v4';
8
+ import type { WorkerLogRequest, ActiveLogStream } from '../schemas/log-stream.ts';
9
+ import type { DatabaseMigrationCredentialSource, DatabaseMigrationLog } from '../schemas/database-migration.ts';
10
+ import type { JsonValue } from '@vibesdotdev/kernel/schemas/json';
11
+ export { WorkerLogRequestSchema, ActiveLogStreamSchema, type WorkerLogRequest, type ActiveLogStream } from '../schemas/log-stream.ts';
8
12
  export declare const InfraLogsDescriptorSchema: z.ZodObject<{
9
13
  id: z.ZodString;
10
14
  name: z.ZodOptional<z.ZodString>;
@@ -13,12 +17,23 @@ export declare const InfraLogsDescriptorSchema: z.ZodObject<{
13
17
  hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
14
18
  enabled: z.ZodOptional<z.ZodBoolean>;
15
19
  priority: z.ZodOptional<z.ZodNumber>;
20
+ capabilityId: z.ZodOptional<z.ZodString>;
16
21
  requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
17
22
  optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
- config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
23
+ config: z.ZodOptional<z.ZodUnknown>;
24
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
25
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
26
+ maxEntries: z.ZodOptional<z.ZodNumber>;
27
+ maxBytes: z.ZodOptional<z.ZodNumber>;
28
+ cascadeFrom: z.ZodOptional<z.ZodString>;
29
+ ageField: z.ZodOptional<z.ZodString>;
30
+ reason: z.ZodString;
31
+ enforcedBy: z.ZodOptional<z.ZodString>;
32
+ }, z.core.$strip>]>>;
19
33
  kind: z.ZodLiteral<"infra/logs">;
20
34
  adapter: z.ZodString;
21
35
  adapterConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
36
+ environment: z.ZodOptional<z.ZodString>;
22
37
  sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
23
38
  type: z.ZodEnum<{
24
39
  worker: "worker";
@@ -26,11 +41,12 @@ export declare const InfraLogsDescriptorSchema: z.ZodObject<{
26
41
  d1: "d1";
27
42
  r2: "r2";
28
43
  kv: "kv";
44
+ pod: "pod";
29
45
  }>;
30
46
  name: z.ZodString;
31
47
  environment: z.ZodOptional<z.ZodString>;
32
48
  }, z.core.$strip>>>;
33
- retention: z.ZodOptional<z.ZodObject<{
49
+ logRetention: z.ZodOptional<z.ZodObject<{
34
50
  hotDays: z.ZodDefault<z.ZodNumber>;
35
51
  coldDays: z.ZodDefault<z.ZodNumber>;
36
52
  }, z.core.$strip>>;
@@ -48,7 +64,60 @@ export declare const InfraLogsDescriptorSchema: z.ZodObject<{
48
64
  }, z.core.$strip>;
49
65
  export type InfraLogsDescriptor = z.infer<typeof InfraLogsDescriptorSchema>;
50
66
  export type InfraLogsDescriptorInput = z.input<typeof InfraLogsDescriptorSchema>;
67
+ export type LogQueryView = 'events' | 'invocations' | 'calculations' | 'calculations_by_invocation' | 'traces' | 'requests' | 'agents';
68
+ export type LogQueryFilterOperation = 'eq' | 'neq' | 'includes' | 'not_includes' | 'starts_with' | 'ends_with' | 'regex' | 'exists' | 'is_null' | 'in' | 'not_in' | 'gt' | 'gte' | 'lt' | 'lte';
69
+ export interface LogQueryFilter {
70
+ key: string;
71
+ operation: LogQueryFilterOperation;
72
+ type?: 'string' | 'number' | 'boolean';
73
+ value?: string | number | boolean;
74
+ }
75
+ export interface LogQueryOptions {
76
+ view?: LogQueryView;
77
+ filters?: LogQueryFilter[];
78
+ filterCombination?: 'and' | 'or';
79
+ needle?: {
80
+ value: string;
81
+ isRegex?: boolean;
82
+ matchCase?: boolean;
83
+ };
84
+ limit?: number;
85
+ offset?: string;
86
+ from: number;
87
+ to: number;
88
+ orderBy?: {
89
+ value: string;
90
+ order: 'asc' | 'desc';
91
+ };
92
+ }
93
+ /** A historical query's answer. The view fields keep the provider's JSON shape; callers normalize what they read. */
94
+ export interface LogQueryResult {
95
+ queryId?: string;
96
+ events?: JsonValue;
97
+ invocations?: JsonValue;
98
+ calculations?: JsonValue;
99
+ rows?: JsonValue;
100
+ result?: JsonValue;
101
+ count?: number;
102
+ /** How many rows matched before the limit applied, so a truncated answer never reads as complete. */
103
+ matchedBeforeLimit?: number;
104
+ /** Provider-reported scalar facts about what was read (for example the cluster and how many sources). */
105
+ facts?: Readonly<Record<string, string | number | boolean>>;
106
+ }
107
+ /** One command's credential choice for a log source: whose credentials, for which environment. */
108
+ export interface LogsSourceOptions {
109
+ /** `ambient` is the operator's explicit opt-in to the shell's provider credentials; it never consults a store. */
110
+ readonly credentialSource: DatabaseMigrationCredentialSource;
111
+ /** The Vibes deployment environment whose stored credentials the source reads; absent, the runtime's own. */
112
+ readonly environment?: string;
113
+ /** Where the source reports which store supplied its credentials. */
114
+ readonly log: Pick<DatabaseMigrationLog, 'info' | 'warn'>;
115
+ }
51
116
  export interface LogsImplementation {
117
+ /** The same source under one command's credential choice; a source without it reads only its default credentials. */
118
+ create?(options: LogsSourceOptions): Promise<LogsImplementation>;
119
+ /** Optional Kubernetes workload log operation; providers validate with WorkerLogRequestSchema. */
120
+ streamLogs?(request: WorkerLogRequest): Promise<ActiveLogStream>;
52
121
  /** Stream logs in real-time (returns WebSocket URL) */
53
122
  tailLogs(sourceName: string, options?: {
54
123
  status?: 'ok' | 'error' | 'canceled';
@@ -81,11 +150,13 @@ export interface LogsImplementation {
81
150
  timeStart: string;
82
151
  timeEnd?: string;
83
152
  }): Promise<number>;
153
+ /** Query historical log events/invocations when the provider supports it. */
154
+ queryLogs?(sourceName: string, options: LogQueryOptions): Promise<LogQueryResult>;
84
155
  }
85
156
  export interface DefaultLogsImplementation {
86
157
  generateConfig: () => InfraLogsDescriptor;
87
158
  }
88
- export declare const logsKind: import("@vibesdotdev/runtime/schemas/kind").RuntimeKindDescriptorRecord<DefaultLogsImplementation>;
159
+ export declare const logsKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DefaultLogsImplementation>;
89
160
  export type InfraLogsKind = InfraLogsDescriptor;
90
161
  export type InfraLogsKindInput = InfraLogsDescriptorInput;
91
162
  //# sourceMappingURL=logs.kind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/logs.kind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAqD5B,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiB,CAAC;AACxD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF,MAAM,WAAW,kBAAkB;IAClC,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,UAAU,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpJ,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,gCAAgC;IAChC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjF,4BAA4B;IAC5B,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1O,qBAAqB;IACrB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvG;AAED,MAAM,WAAW,yBAAyB;IACzC,cAAc,EAAE,MAAM,mBAAmB,CAAC;CAC1C;AAeD,eAAO,MAAM,QAAQ,oGAMnB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAChD,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,CAAC"}
1
+ {"version":3,"file":"logs.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/logs.kind.ts"],"names":[],"mappings":"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"}
@@ -5,28 +5,35 @@
5
5
  * Provides programmatic access to logs for tailing, queries, and analytics.
6
6
  */
7
7
  import * as z from 'zod/v4';
8
- import { createRuntimeKind } from '@vibesdotdev/runtime/factory/kind';
9
- import { RuntimeDescriptorSchema } from '@vibesdotdev/runtime/schemas/descriptor';
10
- import { INFRA_DISCOVERY_PATTERN, extractStem } from "./discovery.js";
8
+ import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
9
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
10
+ import { readKindDescriptor } from "./read-descriptor.js";
11
+ import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
12
+ export { WorkerLogRequestSchema, ActiveLogStreamSchema } from "../schemas/log-stream.js";
11
13
  const LogsBaseSchema = RuntimeDescriptorSchema.extend({
12
14
  kind: z.literal('infra/logs'),
13
15
  /** Adapter type (e.g., 'cloudflare-logs', 'datadog', 'splunk') */
14
16
  adapter: z.string().min(1),
15
17
  /** Adapter-specific configuration */
16
18
  adapterConfig: z.record(z.string(), z.unknown()).optional(),
19
+ /** Optional environment scope used by adapter credential resolution. */
20
+ environment: z.string().optional(),
17
21
  /** Log sources to monitor */
18
22
  sources: z
19
23
  .array(z.object({
20
- /** Source type */
21
- type: z.enum(['worker', 'pages', 'd1', 'r2', 'kv']),
24
+ /**
25
+ * Source type. `pod` is a Kubernetes workload, whose logs are read
26
+ * from the cluster at query time rather than declared here.
27
+ */
28
+ type: z.enum(['worker', 'pages', 'd1', 'r2', 'kv', 'pod']),
22
29
  /** Source name/identifier */
23
30
  name: z.string().min(1),
24
31
  /** Optional environment filter */
25
32
  environment: z.string().optional()
26
33
  }))
27
34
  .default([]),
28
- /** Default retention period */
29
- retention: z
35
+ /** Log-tier retention period; distinct from the runtime descriptor lifecycle policy. */
36
+ logRetention: z
30
37
  .object({
31
38
  /** Hot storage (immediately accessible) */
32
39
  hotDays: z.number().int().positive().default(7),
@@ -51,23 +58,25 @@ const LogsBaseSchema = RuntimeDescriptorSchema.extend({
51
58
  .default([])
52
59
  });
53
60
  export const InfraLogsDescriptorSchema = LogsBaseSchema;
61
+ /** Pass-through: the registered descriptor as this kind's schema reads it, never a substitute. */
54
62
  class DefaultLogsImplementationClass {
63
+ descriptor;
64
+ context;
65
+ /** The descriptor as this kind's schema reads it. */
66
+ config;
67
+ constructor(descriptor, context) {
68
+ this.descriptor = descriptor;
69
+ this.context = context;
70
+ this.config = readKindDescriptor(InfraLogsDescriptorSchema, descriptor);
71
+ }
55
72
  generateConfig() {
56
- return {
57
- kind: 'infra/logs',
58
- id: 'default-logs',
59
- name: 'Default Logs',
60
- adapter: 'unknown',
61
- sources: [],
62
- alerts: []
63
- };
73
+ return this.config;
64
74
  }
65
75
  }
66
76
  export const logsKind = createRuntimeKind({
67
77
  id: 'infra/logs',
68
78
  descriptorSchema: InfraLogsDescriptorSchema,
69
79
  defaultImplementation: DefaultLogsImplementationClass,
70
- discoveryPattern: INFRA_DISCOVERY_PATTERN,
71
- extractStem
80
+ discoveryPatterns: INFRA_DISCOVERY_PATTERNS
72
81
  });
73
82
  //# sourceMappingURL=logs.kind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.kind.js","sourceRoot":"","sources":["../../src/kinds/logs.kind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,cAAc,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC7B,kEAAkE;IAClE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,qCAAqC;IACrC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3D,6BAA6B;IAC7B,OAAO,EAAE,CAAC;SACR,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;QACR,kBAAkB;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnD,6BAA6B;QAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,kCAAkC;QAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC,CACF;SACA,OAAO,CAAC,EAAE,CAAC;IACb,+BAA+B;IAC/B,SAAS,EAAE,CAAC;SACV,MAAM,CAAC;QACP,2CAA2C;QAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,wCAAwC;QACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KACjD,CAAC;SACD,QAAQ,EAAE;IACZ,6BAA6B;IAC7B,MAAM,EAAE,CAAC;SACP,KAAK,CACL,CAAC,CAAC,MAAM,CAAC;QACR,iBAAiB;QACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,sBAAsB;QACtB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC/D,sBAAsB;QACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,iCAAiC;QACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,4BAA4B;QAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;KACzC,CAAC,CACF;SACA,OAAO,CAAC,EAAE,CAAC;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAc,CAAC;AAqBxD,MAAM,8BAA8B;IACnC,cAAc;QACb,OAAO;YACN,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,cAAc;YAClB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;SACV,CAAC;IACH,CAAC;CACD;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,iBAAiB,CAAiD;IACzF,EAAE,EAAE,YAAY;IAChB,gBAAgB,EAAE,yBAAyB;IAC3C,qBAAqB,EAAE,8BAA8B;IACrD,gBAAgB,EAAE,uBAAuB;IACzC,WAAW;CACX,CAAC,CAAC"}
1
+ {"version":3,"file":"logs.kind.js","sourceRoot":"","sources":["../../src/kinds/logs.kind.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Kind: infra/nfs
3
+ *
4
+ * Provider-neutral network file storage descriptor — ReadWriteMany style
5
+ * shared filesystem for ML datasets, checkpoints, and Kubernetes RWX
6
+ * workloads.
7
+ */
8
+ import * as z from 'zod/v4';
9
+ import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
10
+ import type { KindContext } from '@vibesdotdev/kernel/schemas/kind';
11
+ export declare const NfsAccessRuleSchema: z.ZodObject<{
12
+ cidr: z.ZodString;
13
+ mode: z.ZodDefault<z.ZodEnum<{
14
+ rw: "rw";
15
+ ro: "ro";
16
+ }>>;
17
+ }, z.core.$strip>;
18
+ export type NfsAccessRule = z.infer<typeof NfsAccessRuleSchema>;
19
+ /** Open adapter config: the adapter package that owns `adapter` validates the rest. */
20
+ export declare const NfsConfigSchema: z.ZodObject<{
21
+ adapter: z.ZodString;
22
+ }, z.core.$loose>;
23
+ export declare const NfsDescriptorSchema: z.ZodObject<{
24
+ id: z.ZodString;
25
+ name: z.ZodOptional<z.ZodString>;
26
+ description: z.ZodOptional<z.ZodString>;
27
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
28
+ hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
29
+ enabled: z.ZodOptional<z.ZodBoolean>;
30
+ priority: z.ZodOptional<z.ZodNumber>;
31
+ capabilityId: z.ZodOptional<z.ZodString>;
32
+ requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
33
+ optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
34
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
35
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
36
+ maxEntries: z.ZodOptional<z.ZodNumber>;
37
+ maxBytes: z.ZodOptional<z.ZodNumber>;
38
+ cascadeFrom: z.ZodOptional<z.ZodString>;
39
+ ageField: z.ZodOptional<z.ZodString>;
40
+ reason: z.ZodString;
41
+ enforcedBy: z.ZodOptional<z.ZodString>;
42
+ }, z.core.$strip>]>>;
43
+ kind: z.ZodLiteral<"infra/nfs">;
44
+ region: z.ZodOptional<z.ZodString>;
45
+ sizeGb: z.ZodOptional<z.ZodNumber>;
46
+ accessRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
47
+ cidr: z.ZodString;
48
+ mode: z.ZodDefault<z.ZodEnum<{
49
+ rw: "rw";
50
+ ro: "ro";
51
+ }>>;
52
+ }, z.core.$strip>>>;
53
+ config: z.ZodOptional<z.ZodObject<{
54
+ adapter: z.ZodString;
55
+ }, z.core.$loose>>;
56
+ }, z.core.$strip>;
57
+ export type NfsDescriptor = z.infer<typeof NfsDescriptorSchema>;
58
+ declare class DefaultNfsImplementation {
59
+ readonly descriptor: RuntimeDescriptor;
60
+ readonly context: KindContext;
61
+ /** The descriptor as this kind's schema reads it. */
62
+ readonly config: NfsDescriptor;
63
+ constructor(descriptor: RuntimeDescriptor, context: KindContext);
64
+ }
65
+ export declare const nfsKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DefaultNfsImplementation>;
66
+ export {};
67
+ //# sourceMappingURL=nfs.kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nfs.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/nfs.kind.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;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,mBAAmB;;;;;;iBAG9B,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAShE,uFAAuF;AACvF,eAAO,MAAM,eAAe;;iBAAgD,CAAC;AAE7E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,cAAM,wBAAwB;aAIZ,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,WAAW;IAJrC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;gBAEd,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,WAAW;CAKrC;AAED,eAAO,MAAM,OAAO,qFAKlB,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Kind: infra/nfs
3
+ *
4
+ * Provider-neutral network file storage descriptor — ReadWriteMany style
5
+ * shared filesystem for ML datasets, checkpoints, and Kubernetes RWX
6
+ * workloads.
7
+ */
8
+ import * as z from 'zod/v4';
9
+ import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
10
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
11
+ import { readKindDescriptor } from "./read-descriptor.js";
12
+ import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
13
+ export const NfsAccessRuleSchema = z.object({
14
+ cidr: z.string().min(1),
15
+ mode: z.enum(['rw', 'ro']).default('rw')
16
+ });
17
+ const NfsBaseSchema = RuntimeDescriptorSchema.extend({
18
+ kind: z.literal('infra/nfs'),
19
+ region: z.string().min(1).optional(),
20
+ sizeGb: z.number().int().positive().optional(),
21
+ accessRules: z.array(NfsAccessRuleSchema).optional()
22
+ });
23
+ /** Open adapter config: the adapter package that owns `adapter` validates the rest. */
24
+ export const NfsConfigSchema = z.looseObject({ adapter: z.string().min(1) });
25
+ export const NfsDescriptorSchema = NfsBaseSchema.extend({
26
+ config: NfsConfigSchema.optional()
27
+ });
28
+ class DefaultNfsImplementation {
29
+ descriptor;
30
+ context;
31
+ /** The descriptor as this kind's schema reads it. */
32
+ config;
33
+ constructor(descriptor, context) {
34
+ this.descriptor = descriptor;
35
+ this.context = context;
36
+ this.config = readKindDescriptor(NfsDescriptorSchema, descriptor);
37
+ }
38
+ }
39
+ export const nfsKind = createRuntimeKind({
40
+ id: 'infra/nfs',
41
+ descriptorSchema: NfsDescriptorSchema,
42
+ defaultImplementation: DefaultNfsImplementation,
43
+ discoveryPatterns: INFRA_DISCOVERY_PATTERNS
44
+ });
45
+ //# sourceMappingURL=nfs.kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nfs.kind.js","sourceRoot":"","sources":["../../src/kinds/nfs.kind.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,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;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;CACxC,CAAC,CAAC;AAGH,MAAM,aAAa,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC;AAEH,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAE7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC;IACvD,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAIH,MAAM,wBAAwB;IAIZ;IACA;IAJjB,qDAAqD;IAC5C,MAAM,CAAgB;IAC/B,YACiB,UAA6B,EAC7B,OAAoB;QADpB,eAAU,GAAV,UAAU,CAAmB;QAC7B,YAAO,GAAP,OAAO,CAAa;QAEpC,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC;CAED;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAA0C;IACjF,EAAE,EAAE,WAAW;IACf,gBAAgB,EAAE,mBAAmB;IACrC,qBAAqB,EAAE,wBAAwB;IAC/C,iBAAiB,EAAE,wBAAwB;CAC3C,CAAC,CAAC"}