@vibesdotdev/infra-core 0.0.1 → 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 (332) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +34 -63
  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 +23 -34
  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 +141 -35
  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 +123 -40
  306. package/SPEC.md +0 -169
  307. package/src/bootstrap/index.ts +0 -15
  308. package/src/bootstrap/seed.descriptor.ts +0 -24
  309. package/src/bootstrap/seed.impl-shape.ts +0 -5
  310. package/src/bootstrap/seed.kind.ts +0 -26
  311. package/src/bootstrap/seed.runner.ts +0 -87
  312. package/src/credentials/resolve.ts +0 -205
  313. package/src/deployment.ts +0 -57
  314. package/src/index.ts +0 -149
  315. package/src/infra.plugin.ts +0 -54
  316. package/src/kinds/alerts.kind.ts +0 -164
  317. package/src/kinds/artifact.kind.ts +0 -96
  318. package/src/kinds/cache.kind.ts +0 -104
  319. package/src/kinds/database.kind.ts +0 -120
  320. package/src/kinds/discovery.ts +0 -26
  321. package/src/kinds/git-hosting.kind.ts +0 -100
  322. package/src/kinds/index.ts +0 -139
  323. package/src/kinds/logs.kind.ts +0 -104
  324. package/src/kinds/object-storage.kind.ts +0 -101
  325. package/src/kinds/observability.kind.ts +0 -178
  326. package/src/kinds/package-registry.kind.ts +0 -95
  327. package/src/kinds/queue.kind.ts +0 -102
  328. package/src/kinds/rum.kind.ts +0 -135
  329. package/src/kinds/sandbox.kind.ts +0 -115
  330. package/src/kinds/web-app.kind.ts +0 -103
  331. package/src/kinds/worker.kind.ts +0 -203
  332. package/src/schemas.ts +0 -127
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod/v4';
2
+ // Kubernetes durations use Go's duration units, including compound and fractional values.
3
+ const durationPart = String.raw `(?:\d+(?:\.\d*)?|\.\d+)(?:ns|us|µs|μs|ms|s|m|h)`;
4
+ export const WorkerLogRequestSchema = z.object({
5
+ namespace: z.string().min(1),
6
+ /** Provider-owned kubeconfig reference; Core never reads it. */
7
+ kubeconfig: z.string().min(1).optional(),
8
+ /** Explicit Kubernetes resource reference, e.g. deployment/api or pod/api-123. */
9
+ resource: z.string().regex(/^[^/\s]+\/[^/\s]+$/),
10
+ /** -1 requests all available lines. Omission preserves the provider's default. */
11
+ tail: z.number().int().min(-1).optional(),
12
+ since: z.string().regex(new RegExp(`^(?:0|(?:${durationPart})+)$`)).optional(),
13
+ container: z.string().min(1).optional(),
14
+ timestamps: z.boolean().optional(),
15
+ previous: z.boolean().optional(),
16
+ follow: z.boolean().optional(),
17
+ signal: z.instanceof(AbortSignal).optional()
18
+ });
19
+ /**
20
+ * Provider-owned active operation. Completion settles only after provider resources
21
+ * are released: resolves on EOF or requested cancellation, rejects on failure.
22
+ * cancel is idempotent, works while output is locked, and awaits cleanup.
23
+ * The provider must also honor request.signal and output consumer cancellation.
24
+ */
25
+ export const ActiveLogStreamSchema = z.object({
26
+ output: z.instanceof((ReadableStream)),
27
+ // Validate the active handle without awaiting the operation's completion.
28
+ completion: z.instanceof((Promise)),
29
+ cancel: z.function({ input: [z.unknown().optional()], output: z.promise(z.void()) })
30
+ });
31
+ //# sourceMappingURL=log-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-stream.js","sourceRoot":"","sources":["../../src/schemas/log-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,0FAA0F;AAC1F,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA,iDAAiD,CAAC;AAEjF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,gEAAgE;IAChE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,kFAAkF;IAClF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAChD,kFAAkF;IAClF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,YAAY,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC9E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAIH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAA,cAA0B,CAAA,CAAC;IAChD,0EAA0E;IAC1E,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAA,OAAa,CAAA,CAAC;IACvC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;CACpF,CAAC,CAAC"}
@@ -0,0 +1,155 @@
1
+ import * as z from 'zod/v4';
2
+ /** USD a script may spend in the trailing hour and in the calendar month. */
3
+ export declare const SpendBudgetSchema: z.ZodObject<{
4
+ hourlyUsd: z.ZodNumber;
5
+ monthlyUsd: z.ZodNumber;
6
+ }, z.core.$strip>;
7
+ export type SpendBudget = z.infer<typeof SpendBudgetSchema>;
8
+ /** A script with no declared budget is capped at this ceiling. */
9
+ export declare const DEFAULT_SPEND_BUDGET: SpendBudget;
10
+ /**
11
+ * `stub` takes the script out of service; `alert` only reports. A script
12
+ * is `alert` when stopping it would stop the guard itself.
13
+ */
14
+ export declare const SpendActionSchema: z.ZodEnum<{
15
+ stub: "stub";
16
+ alert: "alert";
17
+ }>;
18
+ export type SpendAction = z.infer<typeof SpendActionSchema>;
19
+ export declare const SpendGuardScriptSchema: z.ZodObject<{
20
+ script: z.ZodString;
21
+ budget: z.ZodOptional<z.ZodObject<{
22
+ hourlyUsd: z.ZodOptional<z.ZodNumber>;
23
+ monthlyUsd: z.ZodOptional<z.ZodNumber>;
24
+ }, z.core.$strip>>;
25
+ action: z.ZodOptional<z.ZodEnum<{
26
+ stub: "stub";
27
+ alert: "alert";
28
+ }>>;
29
+ reason: z.ZodString;
30
+ }, z.core.$strip>;
31
+ export type SpendGuardScript = z.infer<typeof SpendGuardScriptSchema>;
32
+ export declare const SpendGuardDescriptorSchema: z.ZodObject<{
33
+ id: z.ZodString;
34
+ name: z.ZodOptional<z.ZodString>;
35
+ description: z.ZodOptional<z.ZodString>;
36
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
37
+ hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
38
+ enabled: z.ZodOptional<z.ZodBoolean>;
39
+ priority: z.ZodOptional<z.ZodNumber>;
40
+ capabilityId: z.ZodOptional<z.ZodString>;
41
+ requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
42
+ optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
43
+ config: z.ZodOptional<z.ZodUnknown>;
44
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
45
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
46
+ maxEntries: z.ZodOptional<z.ZodNumber>;
47
+ maxBytes: z.ZodOptional<z.ZodNumber>;
48
+ cascadeFrom: z.ZodOptional<z.ZodString>;
49
+ ageField: z.ZodOptional<z.ZodString>;
50
+ reason: z.ZodString;
51
+ enforcedBy: z.ZodOptional<z.ZodString>;
52
+ }, z.core.$strip>]>>;
53
+ kind: z.ZodLiteral<"infra/spend-guard">;
54
+ adapter: z.ZodString;
55
+ adapterConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
56
+ environment: z.ZodDefault<z.ZodString>;
57
+ budget: z.ZodDefault<z.ZodObject<{
58
+ hourlyUsd: z.ZodNumber;
59
+ monthlyUsd: z.ZodNumber;
60
+ }, z.core.$strip>>;
61
+ action: z.ZodDefault<z.ZodEnum<{
62
+ stub: "stub";
63
+ alert: "alert";
64
+ }>>;
65
+ scripts: z.ZodDefault<z.ZodArray<z.ZodObject<{
66
+ script: z.ZodString;
67
+ budget: z.ZodOptional<z.ZodObject<{
68
+ hourlyUsd: z.ZodOptional<z.ZodNumber>;
69
+ monthlyUsd: z.ZodOptional<z.ZodNumber>;
70
+ }, z.core.$strip>>;
71
+ action: z.ZodOptional<z.ZodEnum<{
72
+ stub: "stub";
73
+ alert: "alert";
74
+ }>>;
75
+ reason: z.ZodString;
76
+ }, z.core.$strip>>>;
77
+ }, z.core.$strip>;
78
+ export type SpendGuardDescriptor = z.infer<typeof SpendGuardDescriptorSchema>;
79
+ export type SpendGuardDescriptorInput = z.input<typeof SpendGuardDescriptorSchema>;
80
+ /** One script's priced usage. `breakdownUsd` is per billed meter. */
81
+ export declare const ScriptSpendSchema: z.ZodObject<{
82
+ script: z.ZodString;
83
+ hourUsd: z.ZodNumber;
84
+ monthUsd: z.ZodNumber;
85
+ breakdownUsd: z.ZodObject<{
86
+ hour: z.ZodRecord<z.ZodString, z.ZodNumber>;
87
+ month: z.ZodRecord<z.ZodString, z.ZodNumber>;
88
+ }, z.core.$strip>;
89
+ }, z.core.$strip>;
90
+ export type ScriptSpend = z.infer<typeof ScriptSpendSchema>;
91
+ export declare const SpendMeasurementSchema: z.ZodObject<{
92
+ provider: z.ZodString;
93
+ collectedAt: z.ZodISODateTime;
94
+ hourStart: z.ZodISODateTime;
95
+ monthStart: z.ZodISODateTime;
96
+ pricing: z.ZodString;
97
+ scripts: z.ZodArray<z.ZodObject<{
98
+ script: z.ZodString;
99
+ hourUsd: z.ZodNumber;
100
+ monthUsd: z.ZodNumber;
101
+ breakdownUsd: z.ZodObject<{
102
+ hour: z.ZodRecord<z.ZodString, z.ZodNumber>;
103
+ month: z.ZodRecord<z.ZodString, z.ZodNumber>;
104
+ }, z.core.$strip>;
105
+ }, z.core.$strip>>;
106
+ stubbed: z.ZodArray<z.ZodString>;
107
+ errors: z.ZodArray<z.ZodObject<{
108
+ source: z.ZodString;
109
+ message: z.ZodString;
110
+ }, z.core.$strip>>;
111
+ }, z.core.$strip>;
112
+ export type SpendMeasurement = z.infer<typeof SpendMeasurementSchema>;
113
+ export interface SpendVerdict {
114
+ script: string;
115
+ state: 'ok' | 'over' | 'stubbed';
116
+ action: SpendAction;
117
+ budget: SpendBudget;
118
+ hourUsd: number;
119
+ monthUsd: number;
120
+ /** Set when over: which window broke. */
121
+ window?: 'hour' | 'month';
122
+ }
123
+ export declare const SpendTripReceiptSchema: z.ZodObject<{
124
+ script: z.ZodString;
125
+ stubVersionId: z.ZodString;
126
+ previous: z.ZodArray<z.ZodObject<{
127
+ versionId: z.ZodString;
128
+ percentage: z.ZodNumber;
129
+ }, z.core.$strip>>;
130
+ reason: z.ZodString;
131
+ trippedAt: z.ZodISODateTime;
132
+ }, z.core.$strip>;
133
+ export type SpendTripReceipt = z.infer<typeof SpendTripReceiptSchema>;
134
+ export interface SpendGuardImplementation {
135
+ measure(): Promise<SpendMeasurement>;
136
+ /** Deploy the stub to 100% of traffic. Idempotent for an already-stubbed script. */
137
+ trip(script: string, reason: string): Promise<SpendTripReceipt>;
138
+ }
139
+ export interface SpendGuardRun {
140
+ measurement: SpendMeasurement;
141
+ verdicts: SpendVerdict[];
142
+ tripped: SpendTripReceipt[];
143
+ alerted: SpendVerdict[];
144
+ failures: Array<{
145
+ script: string;
146
+ message: string;
147
+ }>;
148
+ }
149
+ export type SpendGuardRegistration = SpendGuardImplementation & {
150
+ create?(options: {
151
+ environment?: string;
152
+ descriptor?: SpendGuardDescriptor;
153
+ }): Promise<SpendGuardImplementation>;
154
+ };
155
+ //# sourceMappingURL=spend-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spend-guard.d.ts","sourceRoot":"","sources":["../../src/schemas/spend-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB;;;iBAG5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,EAAE,WAAgD,CAAC;AAEpF;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;EAA4B,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,sBAAsB;;;;;;;;;;;iBAMjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEnF,qEAAqE;AACrE,eAAO,MAAM,iBAAiB;;;;;;;;iBAQ5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;iBAcjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;iBAOjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,MAAM,WAAW,wBAAwB;IACxC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrC,oFAAoF;IACpF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,aAAa;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,MAAM,MAAM,sBAAsB,GAAG,wBAAwB,GAAG;IAC/D,MAAM,CAAC,CAAC,OAAO,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACjH,CAAC"}
@@ -0,0 +1,61 @@
1
+ import * as z from 'zod/v4';
2
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
3
+ /** USD a script may spend in the trailing hour and in the calendar month. */
4
+ export const SpendBudgetSchema = z.object({
5
+ hourlyUsd: z.number().positive(),
6
+ monthlyUsd: z.number().positive()
7
+ });
8
+ /** A script with no declared budget is capped at this ceiling. */
9
+ export const DEFAULT_SPEND_BUDGET = { hourlyUsd: 25, monthlyUsd: 250 };
10
+ /**
11
+ * `stub` takes the script out of service; `alert` only reports. A script
12
+ * is `alert` when stopping it would stop the guard itself.
13
+ */
14
+ export const SpendActionSchema = z.enum(['stub', 'alert']);
15
+ export const SpendGuardScriptSchema = z.object({
16
+ script: z.string().min(1),
17
+ budget: SpendBudgetSchema.partial().optional(),
18
+ action: SpendActionSchema.optional(),
19
+ /** Why this script differs from the default; required so overrides stay explained. */
20
+ reason: z.string().min(1)
21
+ });
22
+ export const SpendGuardDescriptorSchema = RuntimeDescriptorSchema.extend({
23
+ kind: z.literal('infra/spend-guard'),
24
+ adapter: z.string().min(1),
25
+ adapterConfig: z.record(z.string(), z.unknown()).optional(),
26
+ environment: z.string().default('local'),
27
+ budget: SpendBudgetSchema.default(DEFAULT_SPEND_BUDGET),
28
+ action: SpendActionSchema.default('stub'),
29
+ scripts: z.array(SpendGuardScriptSchema).refine((scripts) => new Set(scripts.map(({ script }) => script)).size === scripts.length, 'Script budget overrides must be unique.').default([])
30
+ });
31
+ /** One script's priced usage. `breakdownUsd` is per billed meter. */
32
+ export const ScriptSpendSchema = z.object({
33
+ script: z.string().min(1),
34
+ hourUsd: z.number().nonnegative(),
35
+ monthUsd: z.number().nonnegative(),
36
+ breakdownUsd: z.object({
37
+ hour: z.record(z.string(), z.number().nonnegative()),
38
+ month: z.record(z.string(), z.number().nonnegative())
39
+ })
40
+ });
41
+ export const SpendMeasurementSchema = z.object({
42
+ provider: z.string().min(1),
43
+ collectedAt: z.iso.datetime({ offset: true }),
44
+ hourStart: z.iso.datetime({ offset: true }),
45
+ monthStart: z.iso.datetime({ offset: true }),
46
+ /** How prices were applied, so a reader can check the arithmetic. */
47
+ pricing: z.string().min(1),
48
+ scripts: z.array(ScriptSpendSchema).refine((scripts) => new Set(scripts.map(({ script }) => script)).size === scripts.length, 'Script measurements must be unique.'),
49
+ /** Scripts the guard already stubbed; they are not tripped twice. */
50
+ stubbed: z.array(z.string()),
51
+ errors: z.array(z.object({ source: z.string(), message: z.string() }))
52
+ });
53
+ export const SpendTripReceiptSchema = z.object({
54
+ script: z.string().min(1),
55
+ stubVersionId: z.string().min(1),
56
+ /** The versions that were serving, with their traffic share — the rollback target. */
57
+ previous: z.array(z.object({ versionId: z.string().min(1), percentage: z.number().min(0).max(100) })),
58
+ reason: z.string().min(1),
59
+ trippedAt: z.iso.datetime({ offset: true })
60
+ });
61
+ //# sourceMappingURL=spend-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spend-guard.js","sourceRoot":"","sources":["../../src/schemas/spend-guard.ts"],"names":[],"mappings":"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"}
package/dist/schemas.d.ts CHANGED
@@ -1,30 +1,28 @@
1
1
  import * as z from 'zod/v4';
2
- /**
3
- * Deployment providers with active adapter implementations.
4
- * Only providers backed by adapter packages are enumerated.
5
- * - cloudflare-workers: via infra-cloudflare
6
- * - digitalocean-app: via infra-doks
7
- */
8
- export declare const deploymentProviderSchema: z.ZodEnum<{
9
- "cloudflare-workers": "cloudflare-workers";
10
- "digitalocean-app": "digitalocean-app";
11
- }>;
2
+ export { deploymentOriginKindSchema } from '@vibesdotdev/infra-contracts';
3
+ export type { DeploymentOriginKind } from '@vibesdotdev/infra-contracts';
4
+ /** Provider IDs are open; the handed runtime admits registered capabilities. */
5
+ export declare const deploymentProviderSchema: z.ZodString;
12
6
  export type DeploymentProvider = z.infer<typeof deploymentProviderSchema>;
13
7
  export declare const appRuntimeSchema: z.ZodEnum<{
14
- edge: "edge";
8
+ browser: "browser";
15
9
  worker: "worker";
10
+ edge: "edge";
16
11
  node: "node";
17
- browser: "browser";
18
12
  }>;
19
13
  export type AppRuntime = z.infer<typeof appRuntimeSchema>;
14
+ /** The environment variables an upstream's origin is published as (`NAME` → origin). */
15
+ export declare const deploymentOriginEnvSchema: z.ZodRecord<z.ZodString, z.ZodString>;
16
+ export type DeploymentOriginEnv = z.infer<typeof deploymentOriginEnvSchema>;
20
17
  export declare const deploymentOriginSchema: z.ZodObject<{
21
18
  hostname: z.ZodString;
22
19
  origin: z.ZodString;
23
20
  kind: z.ZodDefault<z.ZodEnum<{
21
+ internal: "internal";
24
22
  primary: "primary";
25
23
  redirect: "redirect";
26
24
  preview: "preview";
27
- internal: "internal";
25
+ alias: "alias";
28
26
  }>>;
29
27
  description: z.ZodOptional<z.ZodString>;
30
28
  }, z.core.$strip>;
@@ -45,11 +43,13 @@ export declare const deploymentEnvRequirementSchema: z.ZodObject<{
45
43
  secret: z.ZodOptional<z.ZodBoolean>;
46
44
  description: z.ZodOptional<z.ZodString>;
47
45
  storeKey: z.ZodOptional<z.ZodString>;
46
+ storeBinding: z.ZodOptional<z.ZodBoolean>;
48
47
  }, z.core.$strip>;
49
48
  export type DeploymentEnvRequirement = z.infer<typeof deploymentEnvRequirementSchema>;
50
49
  export declare const deploymentDependencySchema: z.ZodObject<{
51
50
  appId: z.ZodString;
52
51
  reason: z.ZodString;
52
+ required: z.ZodDefault<z.ZodBoolean>;
53
53
  }, z.core.$strip>;
54
54
  export type DeploymentDependency = z.infer<typeof deploymentDependencySchema>;
55
55
  export declare const deploymentUpstreamSchema: z.ZodObject<{
@@ -59,18 +59,25 @@ export declare const deploymentUpstreamSchema: z.ZodObject<{
59
59
  originEnvVar: z.ZodOptional<z.ZodString>;
60
60
  }, z.core.$strip>;
61
61
  export type DeploymentUpstream = z.infer<typeof deploymentUpstreamSchema>;
62
+ /** Execution requirements validated against the registered provider at admission. */
63
+ export declare const deploymentExecutionSchema: z.ZodOptional<z.ZodObject<{
64
+ pty: z.ZodOptional<z.ZodBoolean>;
65
+ shell: z.ZodOptional<z.ZodBoolean>;
66
+ maxSessions: z.ZodOptional<z.ZodNumber>;
67
+ }, z.core.$strip>>;
68
+ export type DeploymentExecution = z.infer<typeof deploymentExecutionSchema>;
69
+ /** The build-identity paths an edge purges after a release unless the deployment declares its own. */
70
+ export declare const DEFAULT_EDGE_PURGE_PATHS: readonly string[];
62
71
  export declare const appDeploymentSchema: z.ZodObject<{
63
72
  appId: z.ZodString;
64
73
  appName: z.ZodString;
65
- provider: z.ZodEnum<{
66
- "cloudflare-workers": "cloudflare-workers";
67
- "digitalocean-app": "digitalocean-app";
68
- }>;
74
+ provider: z.ZodString;
75
+ providerPlugin: z.ZodOptional<z.ZodString>;
69
76
  runtime: z.ZodEnum<{
70
- edge: "edge";
77
+ browser: "browser";
71
78
  worker: "worker";
79
+ edge: "edge";
72
80
  node: "node";
73
- browser: "browser";
74
81
  }>;
75
82
  build: z.ZodObject<{
76
83
  workspaceRootDir: z.ZodDefault<z.ZodString>;
@@ -83,10 +90,11 @@ export declare const appDeploymentSchema: z.ZodObject<{
83
90
  hostname: z.ZodString;
84
91
  origin: z.ZodString;
85
92
  kind: z.ZodDefault<z.ZodEnum<{
93
+ internal: "internal";
86
94
  primary: "primary";
87
95
  redirect: "redirect";
88
96
  preview: "preview";
89
- internal: "internal";
97
+ alias: "alias";
90
98
  }>>;
91
99
  description: z.ZodOptional<z.ZodString>;
92
100
  }, z.core.$strip>>;
@@ -98,10 +106,12 @@ export declare const appDeploymentSchema: z.ZodObject<{
98
106
  secret: z.ZodOptional<z.ZodBoolean>;
99
107
  description: z.ZodOptional<z.ZodString>;
100
108
  storeKey: z.ZodOptional<z.ZodString>;
109
+ storeBinding: z.ZodOptional<z.ZodBoolean>;
101
110
  }, z.core.$strip>>>;
102
111
  dependsOn: z.ZodDefault<z.ZodArray<z.ZodObject<{
103
112
  appId: z.ZodString;
104
113
  reason: z.ZodString;
114
+ required: z.ZodDefault<z.ZodBoolean>;
105
115
  }, z.core.$strip>>>;
106
116
  upstreams: z.ZodDefault<z.ZodArray<z.ZodObject<{
107
117
  name: z.ZodString;
@@ -119,7 +129,172 @@ export declare const appDeploymentSchema: z.ZodObject<{
119
129
  command: z.ZodString;
120
130
  description: z.ZodOptional<z.ZodString>;
121
131
  }, z.core.$strip>>>;
132
+ execution: z.ZodOptional<z.ZodObject<{
133
+ pty: z.ZodOptional<z.ZodBoolean>;
134
+ shell: z.ZodOptional<z.ZodBoolean>;
135
+ maxSessions: z.ZodOptional<z.ZodNumber>;
136
+ }, z.core.$strip>>;
137
+ edge: z.ZodOptional<z.ZodObject<{
138
+ purgePaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
139
+ }, z.core.$strip>>;
140
+ migrations: z.ZodOptional<z.ZodObject<{
141
+ requiredForLocalDev: z.ZodDefault<z.ZodBoolean>;
142
+ }, z.core.$strip>>;
122
143
  }, z.core.$strip>;
123
144
  export type AppDeploymentInput = z.input<typeof appDeploymentSchema>;
124
145
  export type AppDeployment = z.infer<typeof appDeploymentSchema>;
146
+ /** Default preview TTL in hours. Redeploys refresh `expiresAt` from this. */
147
+ export declare const DEFAULT_PREVIEW_TTL_HOURS = 72;
148
+ export declare const PreviewRecordStatusSchema: z.ZodEnum<{
149
+ building: "building";
150
+ failed: "failed";
151
+ live: "live";
152
+ destroyed: "destroyed";
153
+ }>;
154
+ export type PreviewRecordStatus = z.infer<typeof PreviewRecordStatusSchema>;
155
+ export declare const PreviewRepoOfRecordSchema: z.ZodEnum<{
156
+ forge: "forge";
157
+ github: "github";
158
+ }>;
159
+ export type PreviewRepoOfRecord = z.infer<typeof PreviewRepoOfRecordSchema>;
160
+ export declare const PreviewSecretsModeSchema: z.ZodEnum<{
161
+ namespace: "namespace";
162
+ "script-pushed": "script-pushed";
163
+ }>;
164
+ export type PreviewSecretsMode = z.infer<typeof PreviewSecretsModeSchema>;
165
+ /** Provider-reported availability for one declared preview capability. */
166
+ export declare const PreviewCapabilityStatusSchema: z.ZodEnum<{
167
+ unavailable: "unavailable";
168
+ available: "available";
169
+ degraded: "degraded";
170
+ "not-declared": "not-declared";
171
+ }>;
172
+ export type PreviewCapabilityStatus = z.infer<typeof PreviewCapabilityStatusSchema>;
173
+ /** Resource isolation achieved by a rendered preview binding. */
174
+ export declare const PreviewCapabilityIsolationSchema: z.ZodEnum<{
175
+ none: "none";
176
+ "preview-tier": "preview-tier";
177
+ "shared-external": "shared-external";
178
+ "not-applicable": "not-applicable";
179
+ }>;
180
+ export type PreviewCapabilityIsolation = z.infer<typeof PreviewCapabilityIsolationSchema>;
181
+ /** Machine-readable proof of what one preview capability actually renders. */
182
+ export declare const PreviewCapabilitySchema: z.ZodObject<{
183
+ status: z.ZodEnum<{
184
+ unavailable: "unavailable";
185
+ available: "available";
186
+ degraded: "degraded";
187
+ "not-declared": "not-declared";
188
+ }>;
189
+ isolation: z.ZodEnum<{
190
+ none: "none";
191
+ "preview-tier": "preview-tier";
192
+ "shared-external": "shared-external";
193
+ "not-applicable": "not-applicable";
194
+ }>;
195
+ critical: z.ZodBoolean;
196
+ declared: z.ZodArray<z.ZodString>;
197
+ rendered: z.ZodArray<z.ZodString>;
198
+ reason: z.ZodString;
199
+ }, z.core.$strip>;
200
+ export type PreviewCapability = z.infer<typeof PreviewCapabilitySchema>;
201
+ export declare const PreviewFidelityLevelSchema: z.ZodEnum<{
202
+ degraded: "degraded";
203
+ full: "full";
204
+ }>;
205
+ export type PreviewFidelityLevel = z.infer<typeof PreviewFidelityLevelSchema>;
206
+ /**
207
+ * Provider-neutral preview fidelity envelope. Providers own the capability
208
+ * facts; orchestration surfaces expose this exact shape and may require
209
+ * `level: 'full'` before any build or upload begins.
210
+ */
211
+ export declare const PreviewFidelitySchema: z.ZodObject<{
212
+ level: z.ZodEnum<{
213
+ degraded: "degraded";
214
+ full: "full";
215
+ }>;
216
+ fullFidelity: z.ZodBoolean;
217
+ criticalMissing: z.ZodArray<z.ZodString>;
218
+ capabilities: z.ZodRecord<z.ZodString, z.ZodObject<{
219
+ status: z.ZodEnum<{
220
+ unavailable: "unavailable";
221
+ available: "available";
222
+ degraded: "degraded";
223
+ "not-declared": "not-declared";
224
+ }>;
225
+ isolation: z.ZodEnum<{
226
+ none: "none";
227
+ "preview-tier": "preview-tier";
228
+ "shared-external": "shared-external";
229
+ "not-applicable": "not-applicable";
230
+ }>;
231
+ critical: z.ZodBoolean;
232
+ declared: z.ZodArray<z.ZodString>;
233
+ rendered: z.ZodArray<z.ZodString>;
234
+ reason: z.ZodString;
235
+ }, z.core.$strip>>;
236
+ }, z.core.$strip>;
237
+ export type PreviewFidelity = z.infer<typeof PreviewFidelitySchema>;
238
+ /**
239
+ * Current-state record for one preview deployment (one per previewId).
240
+ * Persisted as the `infra-deploy.previews` storage manifest (infra-deploy);
241
+ * `runId` references the matching `deployment_runs` history row.
242
+ */
243
+ export declare const PreviewRecordSchema: z.ZodObject<{
244
+ previewId: z.ZodString;
245
+ appId: z.ZodString;
246
+ branch: z.ZodString;
247
+ worktreePath: z.ZodOptional<z.ZodString>;
248
+ previewRef: z.ZodOptional<z.ZodString>;
249
+ sha: z.ZodString;
250
+ repoOfRecord: z.ZodDefault<z.ZodEnum<{
251
+ forge: "forge";
252
+ github: "github";
253
+ }>>;
254
+ buildJobId: z.ZodOptional<z.ZodString>;
255
+ status: z.ZodEnum<{
256
+ building: "building";
257
+ failed: "failed";
258
+ live: "live";
259
+ destroyed: "destroyed";
260
+ }>;
261
+ url: z.ZodString;
262
+ dispatchScript: z.ZodString;
263
+ secretsMode: z.ZodDefault<z.ZodEnum<{
264
+ namespace: "namespace";
265
+ "script-pushed": "script-pushed";
266
+ }>>;
267
+ fidelity: z.ZodOptional<z.ZodObject<{
268
+ level: z.ZodEnum<{
269
+ degraded: "degraded";
270
+ full: "full";
271
+ }>;
272
+ fullFidelity: z.ZodBoolean;
273
+ criticalMissing: z.ZodArray<z.ZodString>;
274
+ capabilities: z.ZodRecord<z.ZodString, z.ZodObject<{
275
+ status: z.ZodEnum<{
276
+ unavailable: "unavailable";
277
+ available: "available";
278
+ degraded: "degraded";
279
+ "not-declared": "not-declared";
280
+ }>;
281
+ isolation: z.ZodEnum<{
282
+ none: "none";
283
+ "preview-tier": "preview-tier";
284
+ "shared-external": "shared-external";
285
+ "not-applicable": "not-applicable";
286
+ }>;
287
+ critical: z.ZodBoolean;
288
+ declared: z.ZodArray<z.ZodString>;
289
+ rendered: z.ZodArray<z.ZodString>;
290
+ reason: z.ZodString;
291
+ }, z.core.$strip>>;
292
+ }, z.core.$strip>>;
293
+ ttlHours: z.ZodDefault<z.ZodNumber>;
294
+ expiresAt: z.ZodString;
295
+ createdBy: z.ZodString;
296
+ runId: z.ZodString;
297
+ }, z.core.$strip>;
298
+ export type PreviewRecordInput = z.input<typeof PreviewRecordSchema>;
299
+ export type PreviewRecord = z.infer<typeof PreviewRecordSchema>;
125
300
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;EAGnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAW1E,eAAO,MAAM,gBAAgB;;;;;EAAgD,CAAC;AAC9E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,sBAAsB;;;;;;;;;;iBAKjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,qBAAqB;;;;;;iBAMhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,8BAA8B;;;;;;;;iBAazC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,wBAAwB;;;;;iBAQnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+C9B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACrE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}