@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment-graph.js","sourceRoot":"","sources":["../src/deployment-graph.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,30 @@
1
- import { type AppDeployment, type AppDeploymentInput, type DeploymentDependency, type DeploymentEnvRequirement, type DeploymentOrigin, type DeploymentUpstream } from './schemas.ts';
1
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
2
+ import * as z from 'zod/v4';
3
+ import type { DeclaredCredential } from '@vibesdotdev/kernel/credentials';
4
+ import { deploymentDependencySchema, type AppDeployment, type AppDeploymentInput, type DeploymentDependency, type DeploymentEnvRequirement, type DeploymentOrigin, type DeploymentOriginEnv, type DeploymentUpstream } from './schemas.ts';
2
5
  export declare function createAppDeployment(input: AppDeploymentInput): AppDeployment;
6
+ /** Validate admission using only capabilities selected in the caller's runtime. */
7
+ export declare function validateAppDeployment(runtime: RuntimeRef, deployment: AppDeployment): void;
3
8
  export declare function createDeploymentOrigin(input: DeploymentOrigin): DeploymentOrigin;
4
9
  export declare function createDeploymentEnvRequirement(input: DeploymentEnvRequirement): DeploymentEnvRequirement;
5
- export declare function createDeploymentDependency(input: DeploymentDependency): DeploymentDependency;
10
+ export declare function createDeploymentDependency(input: z.input<typeof deploymentDependencySchema>): DeploymentDependency;
6
11
  export declare function getPrimaryOrigin(deployment: AppDeployment): DeploymentOrigin;
7
- export declare function getUpstreamOriginEnv(upstream: DeploymentUpstream): Record<string, string>;
8
- export type { AppDeployment, AppDeploymentInput, DeploymentDependency, DeploymentEnvRequirement, DeploymentOrigin, DeploymentUpstream };
12
+ export declare function getUpstreamOriginEnv(upstream: DeploymentUpstream): DeploymentOriginEnv;
13
+ export type { AppDeployment, AppDeploymentInput, DeploymentDependency, DeploymentEnvRequirement, DeploymentOrigin, DeploymentOriginEnv, DeploymentUpstream };
14
+ /**
15
+ * Derive an app's secret env entries from the credentials its composed plugins
16
+ * declare, and verify the hand-written `env` against them. A declared credential
17
+ * the hand list omits is added (secret, required as declared, described by the
18
+ * owner's purpose). One the hand list contradicts is refused: a hand entry that
19
+ * is not a store-bound secret, or that lowers a required credential to
20
+ * `required: false`, is how a safety control went unbound for days.
21
+ *
22
+ * Secret entries are names only: a secret entry carrying `value` is refused
23
+ * (the refusal names the entry, never the value), and a name listed twice is
24
+ * refused rather than resolved last-wins. A returned entry never carries a
25
+ * plaintext value for a declared credential.
26
+ */
27
+ export declare function reconcileDeploymentCredentials(envInput: readonly DeploymentEnvRequirement[] | undefined, declared: readonly DeclaredCredential[]): DeploymentEnvRequirement[];
28
+ /** Reconcile a deployment's env against declared credentials, returning the deployment with derived entries. */
29
+ export declare function reconcileAppDeploymentCredentials(deployment: AppDeployment, declared: readonly DeclaredCredential[]): AppDeployment;
9
30
  //# sourceMappingURL=deployment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,MAAM,cAAc,CAAC;AAEtB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAE5E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAEhF;AAED,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,wBAAwB,GAC7B,wBAAwB,CAE1B;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CAE5F;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,GAAG,gBAAgB,CAI5E;AAED,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,kBAAkB,GAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB;AAED,YAAY,EACX,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAClB,CAAC"}
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8D,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAElH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEN,0BAA0B,EAG1B,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,MAAM,cAAc,CAAC;AAEtB,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAE5E;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,GAAG,IAAI,CA0B1F;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAEhF;AAED,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,wBAAwB,GAC7B,wBAAwB,CAE1B;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,GAAG,oBAAoB,CAElH;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,GAAG,gBAAgB,CAI5E;AAED,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,kBAAkB,GAC1B,mBAAmB,CAQrB;AAED,YAAY,EACX,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,CAAC;AAgBF;;;;;;;;;;;;GAYG;AACH,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,SAAS,wBAAwB,EAAE,GAAG,SAAS,EACzD,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACrC,wBAAwB,EAAE,CAkF5B;AAED,gHAAgH;AAChH,wBAAgB,iCAAiC,CAChD,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GACrC,aAAa,CAEf"}
@@ -1,7 +1,38 @@
1
+ import { CapabilityError, matchesScope } from '@vibesdotdev/kernel';
2
+ import { DeploymentProviderDescriptorSchema } from "./kinds/deployment-provider.kind.js";
3
+ import * as z from 'zod/v4';
1
4
  import { appDeploymentSchema, deploymentDependencySchema, deploymentEnvRequirementSchema, deploymentOriginSchema } from "./schemas.js";
2
5
  export function createAppDeployment(input) {
3
6
  return appDeploymentSchema.parse(input);
4
7
  }
8
+ /** Validate admission using only capabilities selected in the caller's runtime. */
9
+ export function validateAppDeployment(runtime, deployment) {
10
+ const candidates = runtime.hasKind('infra/deployment-provider')
11
+ ? runtime.query('infra/deployment-provider')
12
+ .withId(deployment.provider)
13
+ .enabled()
14
+ .filter((provider) => matchesScope(runtime.scope, { hardware: provider.hardware }))
15
+ .descriptors()
16
+ : [];
17
+ const descriptor = candidates[0];
18
+ if (!descriptor) {
19
+ throw new CapabilityError('The deployment provider is not registered.', 'UNAVAILABLE', {
20
+ reason: 'deployment-provider-unavailable', details: { provider: deployment.provider }
21
+ });
22
+ }
23
+ const capabilities = DeploymentProviderDescriptorSchema.parse(descriptor);
24
+ if (!capabilities.runtimes.includes(deployment.runtime)) {
25
+ throw new CapabilityError('The deployment provider does not support the requested runtime.', 'INVALID_INPUT', {
26
+ reason: 'deployment-runtime-unsupported',
27
+ details: { provider: deployment.provider, runtime: deployment.runtime }
28
+ });
29
+ }
30
+ if (deployment.execution?.pty === true && !capabilities.pty) {
31
+ throw new CapabilityError('The deployment provider does not support interactive PTY sessions.', 'INVALID_INPUT', {
32
+ reason: 'deployment-pty-unsupported', details: { provider: deployment.provider }
33
+ });
34
+ }
35
+ }
5
36
  export function createDeploymentOrigin(input) {
6
37
  return deploymentOriginSchema.parse(input);
7
38
  }
@@ -22,4 +53,78 @@ export function getUpstreamOriginEnv(upstream) {
22
53
  [upstream.originEnvVar]: upstream.origin
23
54
  };
24
55
  }
56
+ const deploymentEnvRequirementListSchema = z.array(deploymentEnvRequirementSchema);
57
+ /** The environment-variable alphabet a deployment credential name must fit. */
58
+ const DEPLOYMENT_CREDENTIAL_NAME = /^[A-Z][A-Z0-9_]{0,95}$/;
59
+ function credentialRefusal(message, reason, details, recoveryHint) {
60
+ return new CapabilityError(message, 'INVALID_INPUT', { reason, retryable: false, details, recoveryHint });
61
+ }
62
+ /**
63
+ * Derive an app's secret env entries from the credentials its composed plugins
64
+ * declare, and verify the hand-written `env` against them. A declared credential
65
+ * the hand list omits is added (secret, required as declared, described by the
66
+ * owner's purpose). One the hand list contradicts is refused: a hand entry that
67
+ * is not a store-bound secret, or that lowers a required credential to
68
+ * `required: false`, is how a safety control went unbound for days.
69
+ *
70
+ * Secret entries are names only: a secret entry carrying `value` is refused
71
+ * (the refusal names the entry, never the value), and a name listed twice is
72
+ * refused rather than resolved last-wins. A returned entry never carries a
73
+ * plaintext value for a declared credential.
74
+ */
75
+ export function reconcileDeploymentCredentials(envInput, declared) {
76
+ // The env a deployment module exports is untrusted data: parse it here, naming no entry's content.
77
+ const parsedEnv = deploymentEnvRequirementListSchema.safeParse(envInput ?? []);
78
+ if (!parsedEnv.success) {
79
+ throw credentialRefusal('The deployment env is not a list of env requirements.', 'deployment-env-invalid', { issues: parsedEnv.error.issues.length }, 'Each env entry needs a name matching ^[_A-Z0-9]+$ and the documented optional fields.');
80
+ }
81
+ const env = parsedEnv.data;
82
+ const byName = new Map();
83
+ for (const entry of env) {
84
+ if (byName.has(entry.name)) {
85
+ throw credentialRefusal(`The deployment env lists '${entry.name}' more than once.`, 'deployment-env-duplicate', { name: entry.name }, `Keep one '${entry.name}' entry.`);
86
+ }
87
+ byName.set(entry.name, entry);
88
+ if (entry.secret === true && entry.value !== undefined) {
89
+ throw credentialRefusal(`The deployment env entry '${entry.name}' is a secret that carries a value.`, 'deployment-secret-value-inline', { name: entry.name }, `Remove \`value\` from '${entry.name}'; a secret is bound from the secret store, never written in the deployment.`);
90
+ }
91
+ }
92
+ const derived = [];
93
+ const declaredNames = new Set();
94
+ for (const credential of declared) {
95
+ if (!DEPLOYMENT_CREDENTIAL_NAME.test(credential.key)) {
96
+ throw credentialRefusal(`Plugin '${credential.owner}' declares a credential name outside the environment-name alphabet.`, 'deployment-credential-name-invalid', { plugin: credential.owner, length: credential.key.length }, 'Declare the credential with a name matching ^[A-Z][A-Z0-9_]{0,95}$.');
97
+ }
98
+ if (declaredNames.has(credential.key)) {
99
+ throw credentialRefusal(`The credential '${credential.key}' is declared more than once.`, 'deployment-credential-duplicate', { key: credential.key, plugin: credential.owner }, 'Merge declared credentials by name before reconciling a deployment.');
100
+ }
101
+ declaredNames.add(credential.key);
102
+ const entry = byName.get(credential.key);
103
+ if (!entry) {
104
+ derived.push(deploymentEnvRequirementSchema.parse({
105
+ name: credential.key,
106
+ secret: true,
107
+ required: credential.required,
108
+ description: `${credential.purpose} (declared by ${credential.owner})`
109
+ }));
110
+ continue;
111
+ }
112
+ const requiredByEntry = entry.required !== false;
113
+ if (entry.secret !== true || entry.storeBinding === false || (credential.required && !requiredByEntry)) {
114
+ throw credentialRefusal(`The deployment declares '${credential.key}' in a way that contradicts the plugin declaration by '${credential.owner}'.`, 'deployment-credential-conflict', {
115
+ key: credential.key,
116
+ plugin: credential.owner,
117
+ declaredRequired: credential.required,
118
+ deploymentSecret: entry.secret === true,
119
+ deploymentRequired: requiredByEntry,
120
+ deploymentStoreBinding: entry.storeBinding !== false
121
+ }, `Remove the hand-written '${credential.key}' entry (it is derived from the plugin declaration), or make it a store-bound ${credential.required ? 'required ' : ''}secret.`);
122
+ }
123
+ }
124
+ return [...env, ...derived];
125
+ }
126
+ /** Reconcile a deployment's env against declared credentials, returning the deployment with derived entries. */
127
+ export function reconcileAppDeploymentCredentials(deployment, declared) {
128
+ return { ...deployment, env: reconcileDeploymentCredentials(deployment.env, declared) };
129
+ }
25
130
  //# sourceMappingURL=deployment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,8BAA8B,EAC9B,sBAAsB,EAOtB,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,mBAAmB,CAAC,KAAyB;IAC5D,OAAO,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAuB;IAC7D,OAAO,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC7C,KAA+B;IAE/B,OAAO,8BAA8B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAA2B;IACrE,OAAO,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAyB;IACzD,OAAO,CACN,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CACvF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,QAA4B;IAE5B,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO;QACN,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM;KACxC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../src/deployment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { CloudProvider, CloudInstance, CloudProviderErrorDetails, InstanceConfig, InstanceFilters, CloudVolume, VolumeConfig, VolumeFilters, SSHKey } from '../types.ts';
2
+ import { CapabilityError, type CapabilityErrorDetails, type VibesRuntime } from '@vibesdotdev/kernel';
3
+ /**
4
+ * A provider failure in the `CapabilityError` taxonomy: `code` is the mapped
5
+ * taxonomy code (`TIMEOUT`, `NOT_FOUND` for `*_NOT_FOUND`, else
6
+ * `UNAVAILABLE`), `reason` is `cloud-provider-<providerCode>`, and the
7
+ * provider's own code stays on `providerCode`. Message and text details are
8
+ * redacted (credential shapes and control characters removed, bounded).
9
+ */
10
+ export declare class CloudProviderError extends CapabilityError {
11
+ readonly provider: string;
12
+ readonly providerCode: string;
13
+ constructor(message: string, providerCode: string, provider: string, details?: CloudProviderErrorDetails, options?: {
14
+ readonly cause?: Error | CapabilityErrorDetails;
15
+ });
16
+ }
17
+ /** Shared mechanics for provider-owned compute and volume implementations. */
18
+ export declare abstract class BaseCloudProvider implements CloudProvider {
19
+ #private;
20
+ protected defaultRegion?: string | undefined;
21
+ abstract name: string;
22
+ constructor(runtime: Pick<VibesRuntime, 'lifecycle'>, credentials: string, defaultRegion?: string | undefined);
23
+ /** Keep runtime internals out of serialization while preserving provider access. */
24
+ protected get runtime(): Pick<VibesRuntime, 'lifecycle'>;
25
+ protected set runtime(runtime: Pick<VibesRuntime, 'lifecycle'>);
26
+ /** The credential the provider was constructed with, for its own requests. */
27
+ protected get credentials(): string;
28
+ abstract createInstance(config: InstanceConfig): Promise<CloudInstance>;
29
+ abstract deleteInstance(instanceId: string): Promise<void>;
30
+ abstract getInstance(instanceId: string): Promise<CloudInstance | null>;
31
+ abstract listInstances(filters?: InstanceFilters): Promise<CloudInstance[]>;
32
+ abstract createVolume(config: VolumeConfig): Promise<CloudVolume>;
33
+ abstract attachVolume(volumeId: string, instanceId: string): Promise<void>;
34
+ abstract detachVolume(volumeId: string): Promise<void>;
35
+ abstract deleteVolume(volumeId: string): Promise<void>;
36
+ abstract listVolumes(filters?: VolumeFilters): Promise<CloudVolume[]>;
37
+ abstract getOrCreateVPC(name: string): Promise<string>;
38
+ abstract addSSHKey(name: string, publicKey: string): Promise<string>;
39
+ abstract listSSHKeys(): Promise<SSHKey[]>;
40
+ protected waitForInstanceStatus(instanceId: string, targetStatus: string, timeoutMs?: number, pollIntervalMs?: number): Promise<CloudInstance>;
41
+ protected waitForVolumeStatus(volumeId: string, targetStatus: string, timeoutMs?: number, pollIntervalMs?: number): Promise<CloudVolume>;
42
+ /** A typed provider failure; `cause` is the failure it replaces, kept for `-v` and logs. */
43
+ protected createError(message: string, code: string, details?: CloudProviderErrorDetails, cause?: Error): CloudProviderError;
44
+ protected buildTags(tags: Record<string, string>, additionalTags?: Record<string, string>): {
45
+ 'managed-by': string;
46
+ provider: string;
47
+ };
48
+ }
49
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/doks/cloud/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ import * as z from 'zod/v4';
2
+ import { CapabilityError, isCapabilityError } from '@vibesdotdev/kernel';
3
+ import { redactedExcerpt } from '@vibesdotdev/shared/utils';
4
+ /** The taxonomy code a provider's own failure code maps to. */
5
+ function capabilityCodeOf(providerCode) {
6
+ if (providerCode === 'TIMEOUT')
7
+ return 'TIMEOUT';
8
+ if (providerCode.endsWith('_NOT_FOUND'))
9
+ return 'NOT_FOUND';
10
+ return 'UNAVAILABLE';
11
+ }
12
+ /** `cloud-provider-<provider code in kebab form>`, bounded. */
13
+ function reasonOf(providerCode) {
14
+ const slug = providerCode.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '').slice(0, 40);
15
+ return `cloud-provider-${slug || 'failure'}`;
16
+ }
17
+ /** One detail value as carried: text redacted, scalars as given. */
18
+ const DetailValueSchema = z.union([z.string().transform((text) => redactedExcerpt(text)), z.number(), z.boolean(), z.null()]);
19
+ function redactedDetails(provider, providerCode, details) {
20
+ const redacted = {};
21
+ for (const [key, value] of Object.entries(details ?? {})) {
22
+ if (value !== undefined)
23
+ redacted[key] = DetailValueSchema.parse(value);
24
+ }
25
+ return { ...redacted, provider, providerCode };
26
+ }
27
+ /**
28
+ * A provider failure in the `CapabilityError` taxonomy: `code` is the mapped
29
+ * taxonomy code (`TIMEOUT`, `NOT_FOUND` for `*_NOT_FOUND`, else
30
+ * `UNAVAILABLE`), `reason` is `cloud-provider-<providerCode>`, and the
31
+ * provider's own code stays on `providerCode`. Message and text details are
32
+ * redacted (credential shapes and control characters removed, bounded).
33
+ */
34
+ export class CloudProviderError extends CapabilityError {
35
+ provider;
36
+ providerCode;
37
+ constructor(message, providerCode, provider, details, options = {}) {
38
+ super(redactedExcerpt(message), capabilityCodeOf(providerCode), {
39
+ reason: reasonOf(providerCode),
40
+ details: redactedDetails(provider, providerCode, details),
41
+ cause: options.cause
42
+ });
43
+ this.name = 'CloudProviderError';
44
+ this.provider = provider;
45
+ this.providerCode = providerCode;
46
+ }
47
+ }
48
+ /** Shared mechanics for provider-owned compute and volume implementations. */
49
+ export class BaseCloudProvider {
50
+ defaultRegion;
51
+ /** The provider credential, private to this class: never an enumerable field that JSON or inspect would print. */
52
+ #credentials;
53
+ #runtime;
54
+ constructor(runtime, credentials, defaultRegion) {
55
+ this.defaultRegion = defaultRegion;
56
+ this.#credentials = credentials;
57
+ this.#runtime = runtime;
58
+ }
59
+ /** Keep runtime internals out of serialization while preserving provider access. */
60
+ get runtime() {
61
+ return this.#runtime;
62
+ }
63
+ set runtime(runtime) {
64
+ this.#runtime = runtime;
65
+ }
66
+ /** The credential the provider was constructed with, for its own requests. */
67
+ get credentials() {
68
+ return this.#credentials;
69
+ }
70
+ async waitForInstanceStatus(instanceId, targetStatus, timeoutMs = 300_000, pollIntervalMs = 5_000) {
71
+ try {
72
+ return await this.runtime.lifecycle.wait(async (signal) => {
73
+ while (true) {
74
+ const instance = await this.getInstance(instanceId);
75
+ if (!instance)
76
+ throw this.createError('Instance not found', 'INSTANCE_NOT_FOUND', { instanceId });
77
+ if (instance.status === targetStatus)
78
+ return instance;
79
+ if (instance.status === 'error' || instance.status === 'terminated') {
80
+ throw this.createError(`Instance entered error state: ${instance.status}`, 'INSTANCE_ERROR', {
81
+ instanceId,
82
+ status: instance.status
83
+ });
84
+ }
85
+ await this.runtime.lifecycle.delay(pollIntervalMs, signal);
86
+ }
87
+ }, { timeoutMs, reason: `waiting-for-instance-status-${targetStatus}` });
88
+ }
89
+ catch (err) {
90
+ if (err instanceof Error && isCapabilityError(err) && err.reason === 'wait-timeout') {
91
+ throw new CloudProviderError(`Timeout waiting for instance status: ${targetStatus}`, 'TIMEOUT', this.name, {
92
+ instanceId,
93
+ targetStatus,
94
+ timeoutMs
95
+ }, { cause: err });
96
+ }
97
+ throw err;
98
+ }
99
+ }
100
+ async waitForVolumeStatus(volumeId, targetStatus, timeoutMs = 120_000, pollIntervalMs = 3_000) {
101
+ try {
102
+ return await this.runtime.lifecycle.wait(async (signal) => {
103
+ while (true) {
104
+ const volume = (await this.listVolumes()).find((candidate) => candidate.id === volumeId);
105
+ if (!volume)
106
+ throw this.createError('Volume not found', 'VOLUME_NOT_FOUND', { volumeId });
107
+ if (volume.status === targetStatus)
108
+ return volume;
109
+ if (volume.status === 'error' || volume.status === 'deleted') {
110
+ throw this.createError(`Volume entered error state: ${volume.status}`, 'VOLUME_ERROR', {
111
+ volumeId,
112
+ status: volume.status
113
+ });
114
+ }
115
+ await this.runtime.lifecycle.delay(pollIntervalMs, signal);
116
+ }
117
+ }, { timeoutMs, reason: `waiting-for-volume-status-${targetStatus}` });
118
+ }
119
+ catch (err) {
120
+ if (err instanceof Error && isCapabilityError(err) && err.reason === 'wait-timeout') {
121
+ throw new CloudProviderError(`Timeout waiting for volume status: ${targetStatus}`, 'TIMEOUT', this.name, {
122
+ volumeId,
123
+ targetStatus,
124
+ timeoutMs
125
+ }, { cause: err });
126
+ }
127
+ throw err;
128
+ }
129
+ }
130
+ /** A typed provider failure; `cause` is the failure it replaces, kept for `-v` and logs. */
131
+ createError(message, code, details, cause) {
132
+ return new CloudProviderError(message, code, this.name, details, { cause });
133
+ }
134
+ buildTags(tags, additionalTags) {
135
+ return { 'managed-by': 'vibes', provider: this.name, ...tags, ...additionalTags };
136
+ }
137
+ }
138
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/doks/cloud/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { VibesRuntime } from '@vibesdotdev/kernel';
2
+ import type { CloudProvider } from '../types.ts';
3
+ export type CloudProviderFactory = (runtime: Pick<VibesRuntime, 'lifecycle'>, credentials: string, region: string) => CloudProvider;
4
+ export interface CloudProviderFactoryImplementation {
5
+ create: CloudProviderFactory;
6
+ }
7
+ export interface CloudProviderFactoryRuntime {
8
+ resolve<T>(kind: string, id: string): Promise<T>;
9
+ readonly lifecycle: VibesRuntime['lifecycle'];
10
+ }
11
+ /**
12
+ * Resolve and construct the vendor implementation selected by the active
13
+ * runtime. A resolved implementation without `create` refuses
14
+ * `INVALID_INPUT cloud-provider-factory-invalid`; a resolution failure passes
15
+ * through as the runtime raised it.
16
+ */
17
+ export declare function createRegisteredCloudProvider(runtime: CloudProviderFactoryRuntime, type: string, credentials: string, region: string): Promise<CloudProvider>;
18
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/doks/cloud/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,aAAa,CAAC;AAEpI,MAAM,WAAW,kCAAkC;IAClD,MAAM,EAAE,oBAAoB,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC3C,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;CAC9C;AAYD;;;;;GAKG;AACH,wBAAsB,6BAA6B,CAClD,OAAO,EAAE,2BAA2B,EACpC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,CAAC,CAOxB"}
@@ -0,0 +1,22 @@
1
+ import * as z from 'zod/v4';
2
+ import { readUntrusted } from '@vibesdotdev/config/manifest/read-untrusted';
3
+ /** A registered factory offers `create`; kept as the original object (its method may use `this`). */
4
+ const FactoryOperationsSchema = z.object({ create: z.function() });
5
+ const FactorySchema = z.custom((value) => FactoryOperationsSchema.safeParse(value).success);
6
+ const FACTORY_INVALID = {
7
+ code: 'INVALID_INPUT',
8
+ reason: 'cloud-provider-factory-invalid',
9
+ message: () => 'The registered infra/cloud-provider implementation offers no create().'
10
+ };
11
+ /**
12
+ * Resolve and construct the vendor implementation selected by the active
13
+ * runtime. A resolved implementation without `create` refuses
14
+ * `INVALID_INPUT cloud-provider-factory-invalid`; a resolution failure passes
15
+ * through as the runtime raised it.
16
+ */
17
+ export async function createRegisteredCloudProvider(runtime, type, credentials, region) {
18
+ const resolved = await runtime.resolve('infra/cloud-provider', type);
19
+ const factory = readUntrusted(FactorySchema, () => resolved, FACTORY_INVALID);
20
+ return factory.create(runtime, credentials, region);
21
+ }
22
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/doks/cloud/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAA6B,MAAM,6CAA6C,CAAC;AAevG,qGAAqG;AACrG,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACnE,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAqC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAEhI,MAAM,eAAe,GAAyB;IAC7C,IAAI,EAAE,eAAe;IACrB,MAAM,EAAE,gCAAgC;IACxC,OAAO,EAAE,GAAG,EAAE,CAAC,wEAAwE;CACvF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAClD,OAAoC,EACpC,IAAY,EACZ,WAAmB,EACnB,MAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CACrC,sBAAsB,EACtB,IAAI,CACJ,CAAC;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC9E,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type { CloudProvider, InstanceConfig, CloudInstance, InstanceFilters, VolumeConfig, CloudVolume, VolumeFilters, SSHKey, CloudProviderConfig, CloudProviderErrorDetails, CloudInstanceMetadata, InstanceStatus, VolumeStatus } from '../types.ts';
2
+ export { CloudProviderError, CloudProviderConfigSchema } from '../types.ts';
3
+ export { BaseCloudProvider } from './base.ts';
4
+ export { createRegisteredCloudProvider, type CloudProviderFactory, type CloudProviderFactoryImplementation, type CloudProviderFactoryRuntime } from './factory.ts';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doks/cloud/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,YAAY,EACZ,WAAW,EACX,aAAa,EACb,MAAM,EACN,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACN,6BAA6B,EAC7B,KAAK,oBAAoB,EACzB,KAAK,kCAAkC,EACvC,KAAK,2BAA2B,EAChC,MAAM,cAAc,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { CloudProviderError, CloudProviderConfigSchema } from "../types.js";
2
+ export { BaseCloudProvider } from "./base.js";
3
+ export { createRegisteredCloudProvider } from "./factory.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doks/cloud/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EACN,6BAA6B,EAI7B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,95 @@
1
+ /** Provider-neutral cloud compute and volume contracts. */
2
+ import * as z from 'zod/v4';
3
+ import type { CapabilityErrorDetails } from '@vibesdotdev/kernel';
4
+ export type InstanceStatus = 'pending' | 'running' | 'stopping' | 'stopped' | 'terminating' | 'terminated' | 'error';
5
+ export type VolumeStatus = 'creating' | 'available' | 'in-use' | 'deleting' | 'deleted' | 'error';
6
+ export interface CloudProvider {
7
+ name: string;
8
+ createInstance(config: InstanceConfig): Promise<CloudInstance>;
9
+ deleteInstance(instanceId: string): Promise<void>;
10
+ getInstance(instanceId: string): Promise<CloudInstance | null>;
11
+ listInstances(filters?: InstanceFilters): Promise<CloudInstance[]>;
12
+ createVolume(config: VolumeConfig): Promise<CloudVolume>;
13
+ attachVolume(volumeId: string, instanceId: string): Promise<void>;
14
+ detachVolume(volumeId: string): Promise<void>;
15
+ deleteVolume(volumeId: string): Promise<void>;
16
+ listVolumes(filters?: VolumeFilters): Promise<CloudVolume[]>;
17
+ getOrCreateVPC(name: string): Promise<string>;
18
+ addSSHKey(name: string, publicKey: string): Promise<string>;
19
+ listSSHKeys(): Promise<SSHKey[]>;
20
+ }
21
+ export interface InstanceConfig {
22
+ name: string;
23
+ type: string;
24
+ region: string;
25
+ image: string;
26
+ sshKeys?: string[];
27
+ vpcId?: string;
28
+ userData?: string;
29
+ tags: Record<string, string>;
30
+ }
31
+ export interface CloudInstance {
32
+ id: string;
33
+ name: string;
34
+ type: string;
35
+ region: string;
36
+ status: InstanceStatus;
37
+ publicIp?: string;
38
+ privateIp?: string;
39
+ createdAt: Date;
40
+ tags: Record<string, string>;
41
+ metadata?: CloudInstanceMetadata;
42
+ }
43
+ /** Provider-reported instance facts: JSON values only. */
44
+ export type CloudInstanceMetadata = CapabilityErrorDetails;
45
+ export interface InstanceFilters {
46
+ status?: InstanceStatus[];
47
+ tags?: Record<string, string>;
48
+ region?: string;
49
+ }
50
+ export interface VolumeConfig {
51
+ name: string;
52
+ size: number;
53
+ region: string;
54
+ tags?: Record<string, string>;
55
+ }
56
+ export interface CloudVolume {
57
+ id: string;
58
+ name: string;
59
+ size: number;
60
+ region: string;
61
+ status: VolumeStatus;
62
+ attachedTo?: string;
63
+ createdAt: Date;
64
+ tags?: Record<string, string>;
65
+ }
66
+ export interface VolumeFilters {
67
+ status?: VolumeStatus[];
68
+ region?: string;
69
+ attachedTo?: string;
70
+ }
71
+ export interface SSHKey {
72
+ id: string;
73
+ name: string;
74
+ fingerprint: string;
75
+ publicKey: string;
76
+ }
77
+ /**
78
+ * Provider-neutral cloud provider config. `type` is the open provider id,
79
+ * resolved through the registered cloud provider factory — never a closed
80
+ * provider enum.
81
+ */
82
+ export declare const CloudProviderConfigSchema: z.ZodObject<{
83
+ type: z.ZodString;
84
+ credentials: z.ZodString;
85
+ region: z.ZodOptional<z.ZodString>;
86
+ }, z.core.$strip>;
87
+ export type CloudProviderConfig = z.infer<typeof CloudProviderConfigSchema>;
88
+ /**
89
+ * What a provider attaches to a failure: scalar facts (ids, statuses, HTTP
90
+ * codes). Text values are redacted at construction, so a provider that hands
91
+ * over a raw API body or an echoed token never carries it further.
92
+ */
93
+ export type CloudProviderErrorDetails = Readonly<Record<string, string | number | boolean | null | undefined>>;
94
+ export { CloudProviderError } from './cloud/base.ts';
95
+ //# sourceMappingURL=types.d.ts.map