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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +33 -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-environment.d.ts +30 -0
  54. package/dist/deployment-environment.d.ts.map +1 -0
  55. package/dist/deployment-environment.js +53 -0
  56. package/dist/deployment-environment.js.map +1 -0
  57. package/dist/deployment.d.ts +8 -4
  58. package/dist/deployment.d.ts.map +1 -1
  59. package/dist/deployment.js +30 -0
  60. package/dist/deployment.js.map +1 -1
  61. package/dist/doks/cloud/base.d.ts +49 -0
  62. package/dist/doks/cloud/base.d.ts.map +1 -0
  63. package/dist/doks/cloud/base.js +138 -0
  64. package/dist/doks/cloud/base.js.map +1 -0
  65. package/dist/doks/cloud/factory.d.ts +18 -0
  66. package/dist/doks/cloud/factory.d.ts.map +1 -0
  67. package/dist/doks/cloud/factory.js +22 -0
  68. package/dist/doks/cloud/factory.js.map +1 -0
  69. package/dist/doks/cloud/index.d.ts +5 -0
  70. package/dist/doks/cloud/index.d.ts.map +1 -0
  71. package/dist/doks/cloud/index.js +4 -0
  72. package/dist/doks/cloud/index.js.map +1 -0
  73. package/dist/doks/types.d.ts +95 -0
  74. package/dist/doks/types.d.ts.map +1 -0
  75. package/dist/doks/types.js +14 -0
  76. package/dist/doks/types.js.map +1 -0
  77. package/dist/generate/index.d.ts +29 -0
  78. package/dist/generate/index.d.ts.map +1 -0
  79. package/dist/generate/index.js +28 -0
  80. package/dist/generate/index.js.map +1 -0
  81. package/dist/generate/infra-generate.plugin.d.ts +3 -0
  82. package/dist/generate/infra-generate.plugin.d.ts.map +1 -0
  83. package/dist/generate/infra-generate.plugin.js +23 -0
  84. package/dist/generate/infra-generate.plugin.js.map +1 -0
  85. package/dist/generate/plugin.d.ts +2 -0
  86. package/dist/generate/plugin.d.ts.map +1 -0
  87. package/dist/generate/plugin.js +2 -0
  88. package/dist/generate/plugin.js.map +1 -0
  89. package/dist/heartbeat/cron-heartbeat.d.ts +97 -0
  90. package/dist/heartbeat/cron-heartbeat.d.ts.map +1 -0
  91. package/dist/heartbeat/cron-heartbeat.js +200 -0
  92. package/dist/heartbeat/cron-heartbeat.js.map +1 -0
  93. package/dist/index.d.ts +34 -20
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +28 -14
  96. package/dist/index.js.map +1 -1
  97. package/dist/infra.plugin.d.ts +1 -1
  98. package/dist/infra.plugin.d.ts.map +1 -1
  99. package/dist/infra.plugin.js +62 -12
  100. package/dist/infra.plugin.js.map +1 -1
  101. package/dist/kinds/alerts.kind.d.ts +64 -25
  102. package/dist/kinds/alerts.kind.d.ts.map +1 -1
  103. package/dist/kinds/alerts.kind.js +43 -16
  104. package/dist/kinds/alerts.kind.js.map +1 -1
  105. package/dist/kinds/artifact.kind.d.ts +58 -10
  106. package/dist/kinds/artifact.kind.d.ts.map +1 -1
  107. package/dist/kinds/artifact.kind.js +26 -9
  108. package/dist/kinds/artifact.kind.js.map +1 -1
  109. package/dist/kinds/billing.kind.d.ts +88 -0
  110. package/dist/kinds/billing.kind.d.ts.map +1 -0
  111. package/dist/kinds/billing.kind.js +48 -0
  112. package/dist/kinds/billing.kind.js.map +1 -0
  113. package/dist/kinds/build-job.kind.d.ts +381 -0
  114. package/dist/kinds/build-job.kind.d.ts.map +1 -0
  115. package/dist/kinds/build-job.kind.js +216 -0
  116. package/dist/kinds/build-job.kind.js.map +1 -0
  117. package/dist/kinds/cache.kind.d.ts +39 -92
  118. package/dist/kinds/cache.kind.d.ts.map +1 -1
  119. package/dist/kinds/cache.kind.js +26 -51
  120. package/dist/kinds/cache.kind.js.map +1 -1
  121. package/dist/kinds/cluster.kind.d.ts +154 -0
  122. package/dist/kinds/cluster.kind.d.ts.map +1 -0
  123. package/dist/kinds/cluster.kind.js +99 -0
  124. package/dist/kinds/cluster.kind.js.map +1 -0
  125. package/dist/kinds/compute-source.kind.d.ts +138 -0
  126. package/dist/kinds/compute-source.kind.d.ts.map +1 -0
  127. package/dist/kinds/compute-source.kind.js +145 -0
  128. package/dist/kinds/compute-source.kind.js.map +1 -0
  129. package/dist/kinds/compute-sources.descriptors.d.ts +45 -0
  130. package/dist/kinds/compute-sources.descriptors.d.ts.map +1 -0
  131. package/dist/kinds/compute-sources.descriptors.js +93 -0
  132. package/dist/kinds/compute-sources.descriptors.js.map +1 -0
  133. package/dist/kinds/container-registry.kind.d.ts +62 -0
  134. package/dist/kinds/container-registry.kind.d.ts.map +1 -0
  135. package/dist/kinds/container-registry.kind.js +47 -0
  136. package/dist/kinds/container-registry.kind.js.map +1 -0
  137. package/dist/kinds/database-migrator.kind.d.ts +6 -0
  138. package/dist/kinds/database-migrator.kind.d.ts.map +1 -0
  139. package/dist/kinds/database-migrator.kind.js +28 -0
  140. package/dist/kinds/database-migrator.kind.js.map +1 -0
  141. package/dist/kinds/database.kind.d.ts +114 -93
  142. package/dist/kinds/database.kind.d.ts.map +1 -1
  143. package/dist/kinds/database.kind.js +93 -54
  144. package/dist/kinds/database.kind.js.map +1 -1
  145. package/dist/kinds/deployment-provider.kind.d.ts +5 -0
  146. package/dist/kinds/deployment-provider.kind.d.ts.map +1 -0
  147. package/dist/kinds/deployment-provider.kind.js +11 -0
  148. package/dist/kinds/deployment-provider.kind.js.map +1 -0
  149. package/dist/kinds/discovery.d.ts +5 -12
  150. package/dist/kinds/discovery.d.ts.map +1 -1
  151. package/dist/kinds/discovery.js +5 -17
  152. package/dist/kinds/discovery.js.map +1 -1
  153. package/dist/kinds/dns.kind.d.ts +162 -0
  154. package/dist/kinds/dns.kind.d.ts.map +1 -0
  155. package/dist/kinds/dns.kind.js +54 -0
  156. package/dist/kinds/dns.kind.js.map +1 -0
  157. package/dist/kinds/drift.kind.d.ts +115 -0
  158. package/dist/kinds/drift.kind.d.ts.map +1 -0
  159. package/dist/kinds/drift.kind.js +60 -0
  160. package/dist/kinds/drift.kind.js.map +1 -0
  161. package/dist/kinds/edge-tls.kind.d.ts +194 -0
  162. package/dist/kinds/edge-tls.kind.d.ts.map +1 -0
  163. package/dist/kinds/edge-tls.kind.js +58 -0
  164. package/dist/kinds/edge-tls.kind.js.map +1 -0
  165. package/dist/kinds/firewall.kind.d.ts +92 -0
  166. package/dist/kinds/firewall.kind.d.ts.map +1 -0
  167. package/dist/kinds/firewall.kind.js +59 -0
  168. package/dist/kinds/firewall.kind.js.map +1 -0
  169. package/dist/kinds/git-hosting.kind.d.ts +36 -38
  170. package/dist/kinds/git-hosting.kind.d.ts.map +1 -1
  171. package/dist/kinds/git-hosting.kind.js +23 -34
  172. package/dist/kinds/git-hosting.kind.js.map +1 -1
  173. package/dist/kinds/index.d.ts +40 -15
  174. package/dist/kinds/index.d.ts.map +1 -1
  175. package/dist/kinds/index.js +39 -14
  176. package/dist/kinds/index.js.map +1 -1
  177. package/dist/kinds/inventory.kind.d.ts +326 -0
  178. package/dist/kinds/inventory.kind.d.ts.map +1 -0
  179. package/dist/kinds/inventory.kind.js +188 -0
  180. package/dist/kinds/inventory.kind.js.map +1 -0
  181. package/dist/kinds/load-balancer.kind.d.ts +135 -0
  182. package/dist/kinds/load-balancer.kind.d.ts.map +1 -0
  183. package/dist/kinds/load-balancer.kind.js +71 -0
  184. package/dist/kinds/load-balancer.kind.js.map +1 -0
  185. package/dist/kinds/logs.kind.d.ts +74 -3
  186. package/dist/kinds/logs.kind.d.ts.map +1 -1
  187. package/dist/kinds/logs.kind.js +26 -17
  188. package/dist/kinds/logs.kind.js.map +1 -1
  189. package/dist/kinds/nfs.kind.d.ts +67 -0
  190. package/dist/kinds/nfs.kind.d.ts.map +1 -0
  191. package/dist/kinds/nfs.kind.js +45 -0
  192. package/dist/kinds/nfs.kind.js.map +1 -0
  193. package/dist/kinds/node-pool.kind.d.ts +134 -0
  194. package/dist/kinds/node-pool.kind.d.ts.map +1 -0
  195. package/dist/kinds/node-pool.kind.js +88 -0
  196. package/dist/kinds/node-pool.kind.js.map +1 -0
  197. package/dist/kinds/object-storage.kind.d.ts +50 -24
  198. package/dist/kinds/object-storage.kind.d.ts.map +1 -1
  199. package/dist/kinds/object-storage.kind.js +40 -23
  200. package/dist/kinds/object-storage.kind.js.map +1 -1
  201. package/dist/kinds/observability.kind.d.ts +104 -6
  202. package/dist/kinds/observability.kind.d.ts.map +1 -1
  203. package/dist/kinds/observability.kind.js +67 -9
  204. package/dist/kinds/observability.kind.js.map +1 -1
  205. package/dist/kinds/package-registry.kind.d.ts +27 -31
  206. package/dist/kinds/package-registry.kind.d.ts.map +1 -1
  207. package/dist/kinds/package-registry.kind.js +13 -26
  208. package/dist/kinds/package-registry.kind.js.map +1 -1
  209. package/dist/kinds/queue.kind.d.ts +67 -63
  210. package/dist/kinds/queue.kind.d.ts.map +1 -1
  211. package/dist/kinds/queue.kind.js +55 -33
  212. package/dist/kinds/queue.kind.js.map +1 -1
  213. package/dist/kinds/read-descriptor.d.ts +15 -0
  214. package/dist/kinds/read-descriptor.d.ts.map +1 -0
  215. package/dist/kinds/read-descriptor.js +11 -0
  216. package/dist/kinds/read-descriptor.js.map +1 -0
  217. package/dist/kinds/rum.kind.d.ts +36 -6
  218. package/dist/kinds/rum.kind.d.ts.map +1 -1
  219. package/dist/kinds/rum.kind.js +6 -7
  220. package/dist/kinds/rum.kind.js.map +1 -1
  221. package/dist/kinds/sandbox.kind.d.ts +136 -36
  222. package/dist/kinds/sandbox.kind.d.ts.map +1 -1
  223. package/dist/kinds/sandbox.kind.js +80 -34
  224. package/dist/kinds/sandbox.kind.js.map +1 -1
  225. package/dist/kinds/select-compute-source.d.ts +72 -0
  226. package/dist/kinds/select-compute-source.d.ts.map +1 -0
  227. package/dist/kinds/select-compute-source.js +170 -0
  228. package/dist/kinds/select-compute-source.js.map +1 -0
  229. package/dist/kinds/service-release.kind.d.ts +771 -0
  230. package/dist/kinds/service-release.kind.d.ts.map +1 -0
  231. package/dist/kinds/service-release.kind.js +676 -0
  232. package/dist/kinds/service-release.kind.js.map +1 -0
  233. package/dist/kinds/spend-guard.kind.d.ts +40 -0
  234. package/dist/kinds/spend-guard.kind.d.ts.map +1 -0
  235. package/dist/kinds/spend-guard.kind.js +133 -0
  236. package/dist/kinds/spend-guard.kind.js.map +1 -0
  237. package/dist/kinds/utilization.kind.d.ts +88 -0
  238. package/dist/kinds/utilization.kind.d.ts.map +1 -0
  239. package/dist/kinds/utilization.kind.js +62 -0
  240. package/dist/kinds/utilization.kind.js.map +1 -0
  241. package/dist/kinds/volume.kind.d.ts +54 -0
  242. package/dist/kinds/volume.kind.d.ts.map +1 -0
  243. package/dist/kinds/volume.kind.js +39 -0
  244. package/dist/kinds/volume.kind.js.map +1 -0
  245. package/dist/kinds/vpc.kind.d.ts +61 -0
  246. package/dist/kinds/vpc.kind.d.ts.map +1 -0
  247. package/dist/kinds/vpc.kind.js +51 -0
  248. package/dist/kinds/vpc.kind.js.map +1 -0
  249. package/dist/kinds/web-app.kind.d.ts +115 -45
  250. package/dist/kinds/web-app.kind.d.ts.map +1 -1
  251. package/dist/kinds/web-app.kind.js +69 -42
  252. package/dist/kinds/web-app.kind.js.map +1 -1
  253. package/dist/kinds/worker.kind.d.ts +291 -188
  254. package/dist/kinds/worker.kind.d.ts.map +1 -1
  255. package/dist/kinds/worker.kind.js +45 -123
  256. package/dist/kinds/worker.kind.js.map +1 -1
  257. package/dist/schemas/database-migration.d.ts +173 -0
  258. package/dist/schemas/database-migration.d.ts.map +1 -0
  259. package/dist/schemas/database-migration.js +88 -0
  260. package/dist/schemas/database-migration.js.map +1 -0
  261. package/dist/schemas/deployment-environment.d.ts +11 -0
  262. package/dist/schemas/deployment-environment.d.ts.map +1 -0
  263. package/dist/schemas/deployment-environment.js +9 -0
  264. package/dist/schemas/deployment-environment.js.map +1 -0
  265. package/dist/schemas/deployment-provider.d.ts +336 -0
  266. package/dist/schemas/deployment-provider.d.ts.map +1 -0
  267. package/dist/schemas/deployment-provider.js +198 -0
  268. package/dist/schemas/deployment-provider.js.map +1 -0
  269. package/dist/schemas/log-stream.d.ts +27 -0
  270. package/dist/schemas/log-stream.d.ts.map +1 -0
  271. package/dist/schemas/log-stream.js +31 -0
  272. package/dist/schemas/log-stream.js.map +1 -0
  273. package/dist/schemas/spend-guard.d.ts +155 -0
  274. package/dist/schemas/spend-guard.d.ts.map +1 -0
  275. package/dist/schemas/spend-guard.js +61 -0
  276. package/dist/schemas/spend-guard.js.map +1 -0
  277. package/dist/schemas.d.ts +190 -20
  278. package/dist/schemas.d.ts.map +1 -1
  279. package/dist/schemas.js +137 -31
  280. package/dist/schemas.js.map +1 -1
  281. package/dist/service.d.ts +87 -0
  282. package/dist/service.d.ts.map +1 -0
  283. package/dist/service.js +199 -0
  284. package/dist/service.js.map +1 -0
  285. package/dist/settle-work.d.ts +20 -0
  286. package/dist/settle-work.d.ts.map +1 -0
  287. package/dist/settle-work.js +22 -0
  288. package/dist/settle-work.js.map +1 -0
  289. package/dist/web-app-projection.d.ts +132 -0
  290. package/dist/web-app-projection.d.ts.map +1 -0
  291. package/dist/web-app-projection.js +93 -0
  292. package/dist/web-app-projection.js.map +1 -0
  293. package/package.json +89 -39
  294. package/SPEC.md +0 -169
  295. package/src/bootstrap/index.ts +0 -15
  296. package/src/bootstrap/seed.descriptor.ts +0 -24
  297. package/src/bootstrap/seed.impl-shape.ts +0 -5
  298. package/src/bootstrap/seed.kind.ts +0 -26
  299. package/src/bootstrap/seed.runner.ts +0 -87
  300. package/src/credentials/resolve.ts +0 -205
  301. package/src/deployment.ts +0 -57
  302. package/src/index.ts +0 -149
  303. package/src/infra.plugin.ts +0 -54
  304. package/src/kinds/alerts.kind.ts +0 -164
  305. package/src/kinds/artifact.kind.ts +0 -96
  306. package/src/kinds/cache.kind.ts +0 -104
  307. package/src/kinds/database.kind.ts +0 -120
  308. package/src/kinds/discovery.ts +0 -26
  309. package/src/kinds/git-hosting.kind.ts +0 -100
  310. package/src/kinds/index.ts +0 -139
  311. package/src/kinds/logs.kind.ts +0 -104
  312. package/src/kinds/object-storage.kind.ts +0 -101
  313. package/src/kinds/observability.kind.ts +0 -178
  314. package/src/kinds/package-registry.kind.ts +0 -95
  315. package/src/kinds/queue.kind.ts +0 -102
  316. package/src/kinds/rum.kind.ts +0 -135
  317. package/src/kinds/sandbox.kind.ts +0 -115
  318. package/src/kinds/web-app.kind.ts +0 -103
  319. package/src/kinds/worker.kind.ts +0 -203
  320. package/src/schemas.ts +0 -127
@@ -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,23 @@ 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>;
62
69
  export declare const appDeploymentSchema: z.ZodObject<{
63
70
  appId: z.ZodString;
64
71
  appName: z.ZodString;
65
- provider: z.ZodEnum<{
66
- "cloudflare-workers": "cloudflare-workers";
67
- "digitalocean-app": "digitalocean-app";
68
- }>;
72
+ provider: z.ZodString;
73
+ providerPlugin: z.ZodOptional<z.ZodString>;
69
74
  runtime: z.ZodEnum<{
70
- edge: "edge";
75
+ browser: "browser";
71
76
  worker: "worker";
77
+ edge: "edge";
72
78
  node: "node";
73
- browser: "browser";
74
79
  }>;
75
80
  build: z.ZodObject<{
76
81
  workspaceRootDir: z.ZodDefault<z.ZodString>;
@@ -83,10 +88,11 @@ export declare const appDeploymentSchema: z.ZodObject<{
83
88
  hostname: z.ZodString;
84
89
  origin: z.ZodString;
85
90
  kind: z.ZodDefault<z.ZodEnum<{
91
+ internal: "internal";
86
92
  primary: "primary";
87
93
  redirect: "redirect";
88
94
  preview: "preview";
89
- internal: "internal";
95
+ alias: "alias";
90
96
  }>>;
91
97
  description: z.ZodOptional<z.ZodString>;
92
98
  }, z.core.$strip>>;
@@ -98,10 +104,12 @@ export declare const appDeploymentSchema: z.ZodObject<{
98
104
  secret: z.ZodOptional<z.ZodBoolean>;
99
105
  description: z.ZodOptional<z.ZodString>;
100
106
  storeKey: z.ZodOptional<z.ZodString>;
107
+ storeBinding: z.ZodOptional<z.ZodBoolean>;
101
108
  }, z.core.$strip>>>;
102
109
  dependsOn: z.ZodDefault<z.ZodArray<z.ZodObject<{
103
110
  appId: z.ZodString;
104
111
  reason: z.ZodString;
112
+ required: z.ZodDefault<z.ZodBoolean>;
105
113
  }, z.core.$strip>>>;
106
114
  upstreams: z.ZodDefault<z.ZodArray<z.ZodObject<{
107
115
  name: z.ZodString;
@@ -119,7 +127,169 @@ export declare const appDeploymentSchema: z.ZodObject<{
119
127
  command: z.ZodString;
120
128
  description: z.ZodOptional<z.ZodString>;
121
129
  }, z.core.$strip>>>;
130
+ execution: z.ZodOptional<z.ZodObject<{
131
+ pty: z.ZodOptional<z.ZodBoolean>;
132
+ shell: z.ZodOptional<z.ZodBoolean>;
133
+ maxSessions: z.ZodOptional<z.ZodNumber>;
134
+ }, z.core.$strip>>;
135
+ migrations: z.ZodOptional<z.ZodObject<{
136
+ requiredForLocalDev: z.ZodDefault<z.ZodBoolean>;
137
+ }, z.core.$strip>>;
122
138
  }, z.core.$strip>;
123
139
  export type AppDeploymentInput = z.input<typeof appDeploymentSchema>;
124
140
  export type AppDeployment = z.infer<typeof appDeploymentSchema>;
141
+ /** Default preview TTL in hours. Redeploys refresh `expiresAt` from this. */
142
+ export declare const DEFAULT_PREVIEW_TTL_HOURS = 72;
143
+ export declare const PreviewRecordStatusSchema: z.ZodEnum<{
144
+ building: "building";
145
+ failed: "failed";
146
+ live: "live";
147
+ destroyed: "destroyed";
148
+ }>;
149
+ export type PreviewRecordStatus = z.infer<typeof PreviewRecordStatusSchema>;
150
+ export declare const PreviewRepoOfRecordSchema: z.ZodEnum<{
151
+ forge: "forge";
152
+ github: "github";
153
+ }>;
154
+ export type PreviewRepoOfRecord = z.infer<typeof PreviewRepoOfRecordSchema>;
155
+ export declare const PreviewSecretsModeSchema: z.ZodEnum<{
156
+ namespace: "namespace";
157
+ "script-pushed": "script-pushed";
158
+ }>;
159
+ export type PreviewSecretsMode = z.infer<typeof PreviewSecretsModeSchema>;
160
+ /** Provider-reported availability for one declared preview capability. */
161
+ export declare const PreviewCapabilityStatusSchema: z.ZodEnum<{
162
+ unavailable: "unavailable";
163
+ available: "available";
164
+ degraded: "degraded";
165
+ "not-declared": "not-declared";
166
+ }>;
167
+ export type PreviewCapabilityStatus = z.infer<typeof PreviewCapabilityStatusSchema>;
168
+ /** Resource isolation achieved by a rendered preview binding. */
169
+ export declare const PreviewCapabilityIsolationSchema: z.ZodEnum<{
170
+ none: "none";
171
+ "preview-tier": "preview-tier";
172
+ "shared-external": "shared-external";
173
+ "not-applicable": "not-applicable";
174
+ }>;
175
+ export type PreviewCapabilityIsolation = z.infer<typeof PreviewCapabilityIsolationSchema>;
176
+ /** Machine-readable proof of what one preview capability actually renders. */
177
+ export declare const PreviewCapabilitySchema: z.ZodObject<{
178
+ status: z.ZodEnum<{
179
+ unavailable: "unavailable";
180
+ available: "available";
181
+ degraded: "degraded";
182
+ "not-declared": "not-declared";
183
+ }>;
184
+ isolation: z.ZodEnum<{
185
+ none: "none";
186
+ "preview-tier": "preview-tier";
187
+ "shared-external": "shared-external";
188
+ "not-applicable": "not-applicable";
189
+ }>;
190
+ critical: z.ZodBoolean;
191
+ declared: z.ZodArray<z.ZodString>;
192
+ rendered: z.ZodArray<z.ZodString>;
193
+ reason: z.ZodString;
194
+ }, z.core.$strip>;
195
+ export type PreviewCapability = z.infer<typeof PreviewCapabilitySchema>;
196
+ export declare const PreviewFidelityLevelSchema: z.ZodEnum<{
197
+ degraded: "degraded";
198
+ full: "full";
199
+ }>;
200
+ export type PreviewFidelityLevel = z.infer<typeof PreviewFidelityLevelSchema>;
201
+ /**
202
+ * Provider-neutral preview fidelity envelope. Providers own the capability
203
+ * facts; orchestration surfaces expose this exact shape and may require
204
+ * `level: 'full'` before any build or upload begins.
205
+ */
206
+ export declare const PreviewFidelitySchema: z.ZodObject<{
207
+ level: z.ZodEnum<{
208
+ degraded: "degraded";
209
+ full: "full";
210
+ }>;
211
+ fullFidelity: z.ZodBoolean;
212
+ criticalMissing: z.ZodArray<z.ZodString>;
213
+ capabilities: z.ZodRecord<z.ZodString, z.ZodObject<{
214
+ status: z.ZodEnum<{
215
+ unavailable: "unavailable";
216
+ available: "available";
217
+ degraded: "degraded";
218
+ "not-declared": "not-declared";
219
+ }>;
220
+ isolation: z.ZodEnum<{
221
+ none: "none";
222
+ "preview-tier": "preview-tier";
223
+ "shared-external": "shared-external";
224
+ "not-applicable": "not-applicable";
225
+ }>;
226
+ critical: z.ZodBoolean;
227
+ declared: z.ZodArray<z.ZodString>;
228
+ rendered: z.ZodArray<z.ZodString>;
229
+ reason: z.ZodString;
230
+ }, z.core.$strip>>;
231
+ }, z.core.$strip>;
232
+ export type PreviewFidelity = z.infer<typeof PreviewFidelitySchema>;
233
+ /**
234
+ * Current-state record for one preview deployment (one per previewId).
235
+ * Persisted as the `infra-deploy.previews` storage manifest (infra-deploy);
236
+ * `runId` references the matching `deployment_runs` history row.
237
+ */
238
+ export declare const PreviewRecordSchema: z.ZodObject<{
239
+ previewId: z.ZodString;
240
+ appId: z.ZodString;
241
+ branch: z.ZodString;
242
+ worktreePath: z.ZodOptional<z.ZodString>;
243
+ previewRef: z.ZodOptional<z.ZodString>;
244
+ sha: z.ZodString;
245
+ repoOfRecord: z.ZodDefault<z.ZodEnum<{
246
+ forge: "forge";
247
+ github: "github";
248
+ }>>;
249
+ buildJobId: z.ZodOptional<z.ZodString>;
250
+ status: z.ZodEnum<{
251
+ building: "building";
252
+ failed: "failed";
253
+ live: "live";
254
+ destroyed: "destroyed";
255
+ }>;
256
+ url: z.ZodString;
257
+ dispatchScript: z.ZodString;
258
+ secretsMode: z.ZodDefault<z.ZodEnum<{
259
+ namespace: "namespace";
260
+ "script-pushed": "script-pushed";
261
+ }>>;
262
+ fidelity: z.ZodOptional<z.ZodObject<{
263
+ level: z.ZodEnum<{
264
+ degraded: "degraded";
265
+ full: "full";
266
+ }>;
267
+ fullFidelity: z.ZodBoolean;
268
+ criticalMissing: z.ZodArray<z.ZodString>;
269
+ capabilities: z.ZodRecord<z.ZodString, z.ZodObject<{
270
+ status: z.ZodEnum<{
271
+ unavailable: "unavailable";
272
+ available: "available";
273
+ degraded: "degraded";
274
+ "not-declared": "not-declared";
275
+ }>;
276
+ isolation: z.ZodEnum<{
277
+ none: "none";
278
+ "preview-tier": "preview-tier";
279
+ "shared-external": "shared-external";
280
+ "not-applicable": "not-applicable";
281
+ }>;
282
+ critical: z.ZodBoolean;
283
+ declared: z.ZodArray<z.ZodString>;
284
+ rendered: z.ZodArray<z.ZodString>;
285
+ reason: z.ZodString;
286
+ }, z.core.$strip>>;
287
+ }, z.core.$strip>>;
288
+ ttlHours: z.ZodDefault<z.ZodNumber>;
289
+ expiresAt: z.ZodString;
290
+ createdBy: z.ZodString;
291
+ runId: z.ZodString;
292
+ }, z.core.$strip>;
293
+ export type PreviewRecordInput = z.input<typeof PreviewRecordSchema>;
294
+ export type PreviewRecord = z.infer<typeof PreviewRecordSchema>;
125
295
  //# 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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"}