@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,243 @@
1
+ /**
2
+ * Kind: infra/inventory
3
+ *
4
+ * Generic read-only inventory descriptor. Implementations enumerate provider
5
+ * resources without mutating them. Used by `vibes infra inventory` and
6
+ * provider-specific list/status commands.
7
+ */
8
+ import * as z from 'zod/v4';
9
+ import { settleUntrusted } from '@vibesdotdev/config/manifest/read-untrusted';
10
+ import { CapabilityError, CaughtFailureSchema, isCapabilityError } from '@vibesdotdev/kernel';
11
+ import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
12
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
13
+ import { readKindDescriptor } from "./read-descriptor.js";
14
+ import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
15
+ import { WorkerDescriptorSchema } from "./worker.kind.js";
16
+ export const InventoryResourceSchema = z.object({
17
+ id: z.string(),
18
+ kind: z.string(),
19
+ name: z.string().optional(),
20
+ region: z.string().optional(),
21
+ status: z.string().optional(),
22
+ managedBy: z.string().optional(),
23
+ tags: z.array(z.string()).optional(),
24
+ createdAt: z.string().optional(),
25
+ raw: z.unknown().optional()
26
+ });
27
+ export const InfraProviderFailureSchema = z.object({
28
+ code: z.string(),
29
+ message: z.string(),
30
+ retryable: z.boolean().optional()
31
+ });
32
+ const FAILURE_UNREADABLE = {
33
+ code: 'INVALID_INPUT',
34
+ reason: 'infra-provider-failure-unreadable',
35
+ message: () => 'Provider failure evidence does not read.'
36
+ };
37
+ /** The evidence a failure that does not read as `InfraProviderFailure` is carried as. */
38
+ const UNREADABLE_FAILURE = {
39
+ code: 'PROVIDER_UNAVAILABLE',
40
+ message: 'Provider operation failed; inspect the provider-specific sanitized diagnostics.'
41
+ };
42
+ /** `failure` as the schema reads it; one that does not read (or throws when read) is the fixed unreadable evidence. */
43
+ function readFailure(failure) {
44
+ const read = settleUntrusted(InfraProviderFailureSchema, () => failure, FAILURE_UNREADABLE);
45
+ return read.ok ? read.data : UNREADABLE_FAILURE;
46
+ }
47
+ /**
48
+ * Provider-sanitized failure evidence as a typed `UNAVAILABLE
49
+ * infra-provider-failure`. The provider's own code stays on `failure.code`
50
+ * (and in details); the message is the provider's sanitized message.
51
+ */
52
+ export class SanitizedInfraProviderError extends CapabilityError {
53
+ failure;
54
+ constructor(failure, cause) {
55
+ const parsed = readFailure(failure);
56
+ const options = {
57
+ reason: 'infra-provider-failure',
58
+ retryable: parsed.retryable,
59
+ details: { providerCode: parsed.code }
60
+ };
61
+ if (cause !== undefined)
62
+ options.cause = cause;
63
+ super(parsed.message, 'UNAVAILABLE', options);
64
+ this.name = 'SanitizedInfraProviderError';
65
+ this.failure = parsed;
66
+ }
67
+ }
68
+ export function createSanitizedInfraProviderError(failure, cause) {
69
+ return new SanitizedInfraProviderError(failure, cause);
70
+ }
71
+ export const InfraAuthorityFingerprintSchema = z.object({
72
+ provider: z.string().min(1),
73
+ requestedEnvironment: z.string().min(1),
74
+ resolvedEnvironment: z.string().min(1),
75
+ source: z.string().min(1),
76
+ account: z.string().min(1),
77
+ /** Stable, non-display digest used to compare identities hidden by redaction. */
78
+ accountIdentity: z.string().regex(/^sha256:[a-f0-9]{64}$/).optional(),
79
+ capabilities: z.array(z.string().min(1))
80
+ });
81
+ /** Stable, provider-neutral text form for operator-facing inventory and audit output. */
82
+ export function formatInfraAuthorityFingerprint(authority) {
83
+ const parsed = InfraAuthorityFingerprintSchema.parse(authority);
84
+ return [
85
+ `provider=${parsed.provider}`,
86
+ `requested=${parsed.requestedEnvironment}`,
87
+ `resolved=${parsed.resolvedEnvironment}`,
88
+ `source=${parsed.source}`,
89
+ `account=${parsed.account}`,
90
+ `capabilities=${[...parsed.capabilities].sort().join(',')}`
91
+ ].join(' ');
92
+ }
93
+ /**
94
+ * Reconcile authority evidence emitted by several provider surfaces. Identity
95
+ * must be identical; capabilities are the honest union of operations actually
96
+ * requested by those surfaces.
97
+ */
98
+ export function mergeInfraAuthorityFingerprints(authorities) {
99
+ if (authorities.length === 0)
100
+ return undefined;
101
+ const parsed = authorities.map((authority) => InfraAuthorityFingerprintSchema.parse(authority));
102
+ const [first, ...rest] = parsed;
103
+ if (parsed.length > 1 && parsed.some((authority) => !authority.accountIdentity)) {
104
+ throw createSanitizedInfraProviderError({
105
+ code: 'INFRA_AUTHORITY_DIVERGENCE',
106
+ message: 'Infrastructure provider surfaces resolved different operator authorities.',
107
+ retryable: false
108
+ });
109
+ }
110
+ for (const authority of rest) {
111
+ if (authority.provider !== first.provider ||
112
+ authority.requestedEnvironment !== first.requestedEnvironment ||
113
+ authority.resolvedEnvironment !== first.resolvedEnvironment ||
114
+ authority.source !== first.source ||
115
+ authority.account !== first.account ||
116
+ authority.accountIdentity !== first.accountIdentity) {
117
+ throw createSanitizedInfraProviderError({
118
+ code: 'INFRA_AUTHORITY_DIVERGENCE',
119
+ message: 'Infrastructure provider surfaces resolved different operator authorities.',
120
+ retryable: false
121
+ });
122
+ }
123
+ }
124
+ return InfraAuthorityFingerprintSchema.parse({
125
+ ...first,
126
+ capabilities: [...new Set(parsed.flatMap((authority) => authority.capabilities))].sort()
127
+ });
128
+ }
129
+ /**
130
+ * Convert arbitrary backend exceptions into bounded operator-safe evidence: a
131
+ * `SanitizedInfraProviderError` keeps its evidence; anything else is the fixed
132
+ * unreadable evidence (what it says is never repeated).
133
+ */
134
+ export function sanitizeInfraProviderFailure(error, declaredCredentialKeys = []) {
135
+ const caught = CaughtFailureSchema.parse(error);
136
+ if (caught instanceof SanitizedInfraProviderError)
137
+ return caught.failure;
138
+ return typedFailureEvidence(caught, new Set(declaredCredentialKeys)) ?? UNREADABLE_FAILURE;
139
+ }
140
+ /** The deepest `cause` chain read when naming a typed failure. */
141
+ const TYPED_CHAIN_LIMIT = 6;
142
+ /** A credential key name is an environment-style name; it is named only when a declared requirement lists it. */
143
+ const CREDENTIAL_KEY_NAME = /^[A-Z][A-Z0-9_]{0,95}$/;
144
+ const TYPED_REASON = /^[a-z][a-z0-9-]{0,63}$/;
145
+ const TYPED_KEY_LIMIT = 8;
146
+ /**
147
+ * The names of the credential keys a typed failure's details carry
148
+ * (`details.keys`) that a declared credential requirement lists. An
149
+ * identifier-shaped string that no requirement declares (a token prefix, an
150
+ * access-key id) is never named.
151
+ */
152
+ function credentialKeyNames(error, declared) {
153
+ const keys = error.details?.keys;
154
+ if (!Array.isArray(keys))
155
+ return [];
156
+ return keys
157
+ .filter((key) => typeof key === 'string' && CREDENTIAL_KEY_NAME.test(key) && declared.has(key))
158
+ .slice(0, TYPED_KEY_LIMIT);
159
+ }
160
+ /**
161
+ * The typed reasons (outermost first) and credential key names a
162
+ * `CapabilityError` chain carries. A `CapabilityError` states its reason and
163
+ * details value-free by contract; its message and any untyped link are never
164
+ * read, so a credential value cannot reach the evidence. `undefined` when the
165
+ * failure is not typed.
166
+ */
167
+ function typedFailureEvidence(caught, declared) {
168
+ const reasons = [];
169
+ const keys = [];
170
+ let retryable;
171
+ let link = caught;
172
+ for (let depth = 0; depth < TYPED_CHAIN_LIMIT && link instanceof Error && isCapabilityError(link); depth++) {
173
+ if (TYPED_REASON.test(link.reason) && !reasons.includes(link.reason))
174
+ reasons.push(link.reason);
175
+ for (const key of credentialKeyNames(link, declared))
176
+ if (!keys.includes(key))
177
+ keys.push(key);
178
+ if (retryable === undefined)
179
+ retryable = link.retryable;
180
+ link = link.cause;
181
+ }
182
+ if (reasons.length === 0)
183
+ return undefined;
184
+ const named = keys.length > 0 ? ` (credential keys: ${keys.join(', ')})` : '';
185
+ const evidence = {
186
+ code: 'PROVIDER_UNAVAILABLE',
187
+ message: `Provider operation failed: ${reasons.join(' <- ')}${named}.`
188
+ };
189
+ if (retryable !== undefined)
190
+ evidence.retryable = retryable;
191
+ return evidence;
192
+ }
193
+ export const InventoryDeclaredResourceSchema = z.object({
194
+ kind: z.string().min(1),
195
+ id: z.string().min(1),
196
+ name: z.string().min(1).optional()
197
+ });
198
+ export const InventorySnapshotSchema = z.object({
199
+ provider: z.string(),
200
+ collectedAt: z.string(),
201
+ resources: z.array(InventoryResourceSchema),
202
+ declarations: z.array(InventoryDeclaredResourceSchema).optional(),
203
+ authority: InfraAuthorityFingerprintSchema.optional(),
204
+ /** Credential-route evidence only; never includes a credential value or key material. */
205
+ credentialPath: z.string().min(1).optional()
206
+ });
207
+ export const InventoryWorkspaceSourcesSchema = z.object({
208
+ deploymentProviders: z.array(z.string().min(1)).default([]),
209
+ workerAdapters: z.array(z.string().min(1)).default([])
210
+ });
211
+ export const InventoryWorkspaceSchema = z.object({
212
+ deployments: z.array(z.object({
213
+ provider: z.string().min(1),
214
+ unitName: z.string().nullable()
215
+ })).default([]),
216
+ workers: z.array(WorkerDescriptorSchema).default([])
217
+ });
218
+ const InventoryBaseSchema = RuntimeDescriptorSchema.extend({
219
+ kind: z.literal('infra/inventory'),
220
+ provider: z.string().min(1).optional(),
221
+ providerAliases: z.array(z.string().min(1)).optional(),
222
+ resourceKinds: z.array(z.string()).optional(),
223
+ workspaceSources: InventoryWorkspaceSourcesSchema.optional()
224
+ });
225
+ export const InventoryDescriptorSchema = InventoryBaseSchema;
226
+ class DefaultInventoryImplementation {
227
+ descriptor;
228
+ context;
229
+ /** The descriptor as this kind's schema reads it. */
230
+ config;
231
+ constructor(descriptor, context) {
232
+ this.descriptor = descriptor;
233
+ this.context = context;
234
+ this.config = readKindDescriptor(InventoryDescriptorSchema, descriptor);
235
+ }
236
+ }
237
+ export const inventoryKind = createRuntimeKind({
238
+ id: 'infra/inventory',
239
+ descriptorSchema: InventoryDescriptorSchema,
240
+ defaultImplementation: DefaultInventoryImplementation,
241
+ discoveryPatterns: INFRA_DISCOVERY_PATTERNS
242
+ });
243
+ //# sourceMappingURL=inventory.kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inventory.kind.js","sourceRoot":"","sources":["../../src/kinds/inventory.kind.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Kind: infra/load-balancer
3
+ *
4
+ * Provider-neutral load balancer descriptor.
5
+ *
6
+ * `config` is an open, adapter-keyed shape (DigitalOcean's load balancer
7
+ * config lives in `@vibesdotdev/integrations-digitalocean`); this kind
8
+ * names no provider, so a config for any adapter parses here and the
9
+ * adapter validates its own grammar.
10
+ */
11
+ import * as z from 'zod/v4';
12
+ import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
13
+ import type { KindContext } from '@vibesdotdev/kernel/schemas/kind';
14
+ export declare const LoadBalancerForwardingRuleSchema: z.ZodObject<{
15
+ entryProtocol: z.ZodEnum<{
16
+ tcp: "tcp";
17
+ http: "http";
18
+ udp: "udp";
19
+ http2: "http2";
20
+ https: "https";
21
+ http3: "http3";
22
+ }>;
23
+ entryPort: z.ZodNumber;
24
+ targetProtocol: z.ZodEnum<{
25
+ tcp: "tcp";
26
+ http: "http";
27
+ udp: "udp";
28
+ http2: "http2";
29
+ https: "https";
30
+ }>;
31
+ targetPort: z.ZodNumber;
32
+ certificateId: z.ZodOptional<z.ZodString>;
33
+ tlsPassthrough: z.ZodOptional<z.ZodBoolean>;
34
+ }, z.core.$strip>;
35
+ export type LoadBalancerForwardingRule = z.infer<typeof LoadBalancerForwardingRuleSchema>;
36
+ export declare const LoadBalancerHealthCheckSchema: z.ZodObject<{
37
+ protocol: z.ZodEnum<{
38
+ tcp: "tcp";
39
+ http: "http";
40
+ https: "https";
41
+ }>;
42
+ port: z.ZodOptional<z.ZodNumber>;
43
+ path: z.ZodOptional<z.ZodString>;
44
+ checkIntervalSeconds: z.ZodOptional<z.ZodNumber>;
45
+ responseTimeoutSeconds: z.ZodOptional<z.ZodNumber>;
46
+ unhealthyThreshold: z.ZodOptional<z.ZodNumber>;
47
+ healthyThreshold: z.ZodOptional<z.ZodNumber>;
48
+ }, z.core.$strip>;
49
+ export type LoadBalancerHealthCheck = z.infer<typeof LoadBalancerHealthCheckSchema>;
50
+ /**
51
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
52
+ * adapter package defines and parses its own config schema; this kind names
53
+ * no provider, so a config for any adapter — including one contributed by a
54
+ * user plugin — parses here, and the adapter validates its own grammar.
55
+ */
56
+ export declare const LoadBalancerConfigSchema: z.ZodObject<{
57
+ adapter: z.ZodString;
58
+ }, z.core.$loose>;
59
+ export type LoadBalancerConfig = z.infer<typeof LoadBalancerConfigSchema>;
60
+ export declare const LoadBalancerDescriptorSchema: z.ZodObject<{
61
+ id: z.ZodString;
62
+ name: z.ZodOptional<z.ZodString>;
63
+ description: z.ZodOptional<z.ZodString>;
64
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
65
+ hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
+ enabled: z.ZodOptional<z.ZodBoolean>;
67
+ priority: z.ZodOptional<z.ZodNumber>;
68
+ capabilityId: z.ZodOptional<z.ZodString>;
69
+ requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
70
+ optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
71
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
72
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
73
+ maxEntries: z.ZodOptional<z.ZodNumber>;
74
+ maxBytes: z.ZodOptional<z.ZodNumber>;
75
+ cascadeFrom: z.ZodOptional<z.ZodString>;
76
+ ageField: z.ZodOptional<z.ZodString>;
77
+ reason: z.ZodString;
78
+ enforcedBy: z.ZodOptional<z.ZodString>;
79
+ }, z.core.$strip>]>>;
80
+ kind: z.ZodLiteral<"infra/load-balancer">;
81
+ region: z.ZodOptional<z.ZodString>;
82
+ forwardingRules: z.ZodOptional<z.ZodArray<z.ZodObject<{
83
+ entryProtocol: z.ZodEnum<{
84
+ tcp: "tcp";
85
+ http: "http";
86
+ udp: "udp";
87
+ http2: "http2";
88
+ https: "https";
89
+ http3: "http3";
90
+ }>;
91
+ entryPort: z.ZodNumber;
92
+ targetProtocol: z.ZodEnum<{
93
+ tcp: "tcp";
94
+ http: "http";
95
+ udp: "udp";
96
+ http2: "http2";
97
+ https: "https";
98
+ }>;
99
+ targetPort: z.ZodNumber;
100
+ certificateId: z.ZodOptional<z.ZodString>;
101
+ tlsPassthrough: z.ZodOptional<z.ZodBoolean>;
102
+ }, z.core.$strip>>>;
103
+ healthCheck: z.ZodOptional<z.ZodObject<{
104
+ protocol: z.ZodEnum<{
105
+ tcp: "tcp";
106
+ http: "http";
107
+ https: "https";
108
+ }>;
109
+ port: z.ZodOptional<z.ZodNumber>;
110
+ path: z.ZodOptional<z.ZodString>;
111
+ checkIntervalSeconds: z.ZodOptional<z.ZodNumber>;
112
+ responseTimeoutSeconds: z.ZodOptional<z.ZodNumber>;
113
+ unhealthyThreshold: z.ZodOptional<z.ZodNumber>;
114
+ healthyThreshold: z.ZodOptional<z.ZodNumber>;
115
+ }, z.core.$strip>>;
116
+ algorithm: z.ZodOptional<z.ZodEnum<{
117
+ round_robin: "round_robin";
118
+ least_connections: "least_connections";
119
+ }>>;
120
+ redirectHttpToHttps: z.ZodOptional<z.ZodBoolean>;
121
+ config: z.ZodOptional<z.ZodObject<{
122
+ adapter: z.ZodString;
123
+ }, z.core.$loose>>;
124
+ }, z.core.$strip>;
125
+ export type LoadBalancerDescriptor = z.infer<typeof LoadBalancerDescriptorSchema>;
126
+ declare class DefaultLoadBalancerImplementation {
127
+ readonly descriptor: RuntimeDescriptor;
128
+ readonly context: KindContext;
129
+ /** The descriptor as this kind's schema reads it. */
130
+ readonly config: LoadBalancerDescriptor;
131
+ constructor(descriptor: RuntimeDescriptor, context: KindContext);
132
+ }
133
+ export declare const loadBalancerKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DefaultLoadBalancerImplementation>;
134
+ export {};
135
+ //# sourceMappingURL=load-balancer.kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-balancer.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/load-balancer.kind.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAIpE,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;iBAO3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,6BAA6B;;;;;;;;;;;;iBAQxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAWpF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;iBAEnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,cAAM,iCAAiC;aAIrB,UAAU,EAAE,iBAAiB;aAC7B,OAAO,EAAE,WAAW;IAJrC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;gBAEvB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,WAAW;CAKrC;AAED,eAAO,MAAM,gBAAgB,8FAK3B,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Kind: infra/load-balancer
3
+ *
4
+ * Provider-neutral load balancer descriptor.
5
+ *
6
+ * `config` is an open, adapter-keyed shape (DigitalOcean's load balancer
7
+ * config lives in `@vibesdotdev/integrations-digitalocean`); this kind
8
+ * names no provider, so a config for any adapter parses here and the
9
+ * adapter validates its own grammar.
10
+ */
11
+ import * as z from 'zod/v4';
12
+ import { createRuntimeKind } from '@vibesdotdev/kernel/factory/kind';
13
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
14
+ import { readKindDescriptor } from "./read-descriptor.js";
15
+ import { INFRA_DISCOVERY_PATTERNS } from "./discovery.js";
16
+ export const LoadBalancerForwardingRuleSchema = z.object({
17
+ entryProtocol: z.enum(['http', 'https', 'http2', 'http3', 'tcp', 'udp']),
18
+ entryPort: z.number().int().positive(),
19
+ targetProtocol: z.enum(['http', 'https', 'http2', 'tcp', 'udp']),
20
+ targetPort: z.number().int().positive(),
21
+ certificateId: z.string().optional(),
22
+ tlsPassthrough: z.boolean().optional()
23
+ });
24
+ export const LoadBalancerHealthCheckSchema = z.object({
25
+ protocol: z.enum(['http', 'https', 'tcp']),
26
+ port: z.number().int().positive().optional(),
27
+ path: z.string().optional(),
28
+ checkIntervalSeconds: z.number().int().positive().optional(),
29
+ responseTimeoutSeconds: z.number().int().positive().optional(),
30
+ unhealthyThreshold: z.number().int().positive().optional(),
31
+ healthyThreshold: z.number().int().positive().optional()
32
+ });
33
+ const LoadBalancerBaseSchema = RuntimeDescriptorSchema.extend({
34
+ kind: z.literal('infra/load-balancer'),
35
+ region: z.string().min(1).optional(),
36
+ forwardingRules: z.array(LoadBalancerForwardingRuleSchema).optional(),
37
+ healthCheck: LoadBalancerHealthCheckSchema.optional(),
38
+ algorithm: z.enum(['round_robin', 'least_connections']).optional(),
39
+ redirectHttpToHttps: z.boolean().optional()
40
+ });
41
+ /**
42
+ * Adapter-specific configuration: the adapter id plus its own fields. Each
43
+ * adapter package defines and parses its own config schema; this kind names
44
+ * no provider, so a config for any adapter — including one contributed by a
45
+ * user plugin — parses here, and the adapter validates its own grammar.
46
+ */
47
+ export const LoadBalancerConfigSchema = z.looseObject({
48
+ adapter: z.string().min(1)
49
+ });
50
+ export const LoadBalancerDescriptorSchema = LoadBalancerBaseSchema.extend({
51
+ /** Adapter-specific configuration, parsed by the adapter that owns it. */
52
+ config: LoadBalancerConfigSchema.optional()
53
+ });
54
+ class DefaultLoadBalancerImplementation {
55
+ descriptor;
56
+ context;
57
+ /** The descriptor as this kind's schema reads it. */
58
+ config;
59
+ constructor(descriptor, context) {
60
+ this.descriptor = descriptor;
61
+ this.context = context;
62
+ this.config = readKindDescriptor(LoadBalancerDescriptorSchema, descriptor);
63
+ }
64
+ }
65
+ export const loadBalancerKind = createRuntimeKind({
66
+ id: 'infra/load-balancer',
67
+ descriptorSchema: LoadBalancerDescriptorSchema,
68
+ defaultImplementation: DefaultLoadBalancerImplementation,
69
+ discoveryPatterns: INFRA_DISCOVERY_PATTERNS
70
+ });
71
+ //# sourceMappingURL=load-balancer.kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-balancer.kind.js","sourceRoot":"","sources":["../../src/kinds/load-balancer.kind.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,10 @@
5
5
  * Provides programmatic access to logs for tailing, queries, and analytics.
6
6
  */
7
7
  import * as z from 'zod/v4';
8
+ import type { WorkerLogRequest, ActiveLogStream } from '../schemas/log-stream.ts';
9
+ import type { DatabaseMigrationCredentialSource, DatabaseMigrationLog } from '../schemas/database-migration.ts';
10
+ import type { JsonValue } from '@vibesdotdev/kernel/schemas/json';
11
+ export { WorkerLogRequestSchema, ActiveLogStreamSchema, type WorkerLogRequest, type ActiveLogStream } from '../schemas/log-stream.ts';
8
12
  export declare const InfraLogsDescriptorSchema: z.ZodObject<{
9
13
  id: z.ZodString;
10
14
  name: z.ZodOptional<z.ZodString>;
@@ -13,12 +17,23 @@ export declare const InfraLogsDescriptorSchema: z.ZodObject<{
13
17
  hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
14
18
  enabled: z.ZodOptional<z.ZodBoolean>;
15
19
  priority: z.ZodOptional<z.ZodNumber>;
20
+ capabilityId: z.ZodOptional<z.ZodString>;
16
21
  requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
17
22
  optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
18
- config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
23
+ config: z.ZodOptional<z.ZodUnknown>;
24
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
25
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
26
+ maxEntries: z.ZodOptional<z.ZodNumber>;
27
+ maxBytes: z.ZodOptional<z.ZodNumber>;
28
+ cascadeFrom: z.ZodOptional<z.ZodString>;
29
+ ageField: z.ZodOptional<z.ZodString>;
30
+ reason: z.ZodString;
31
+ enforcedBy: z.ZodOptional<z.ZodString>;
32
+ }, z.core.$strip>]>>;
19
33
  kind: z.ZodLiteral<"infra/logs">;
20
34
  adapter: z.ZodString;
21
35
  adapterConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
36
+ environment: z.ZodOptional<z.ZodString>;
22
37
  sources: z.ZodDefault<z.ZodArray<z.ZodObject<{
23
38
  type: z.ZodEnum<{
24
39
  worker: "worker";
@@ -26,11 +41,12 @@ export declare const InfraLogsDescriptorSchema: z.ZodObject<{
26
41
  d1: "d1";
27
42
  r2: "r2";
28
43
  kv: "kv";
44
+ pod: "pod";
29
45
  }>;
30
46
  name: z.ZodString;
31
47
  environment: z.ZodOptional<z.ZodString>;
32
48
  }, z.core.$strip>>>;
33
- retention: z.ZodOptional<z.ZodObject<{
49
+ logRetention: z.ZodOptional<z.ZodObject<{
34
50
  hotDays: z.ZodDefault<z.ZodNumber>;
35
51
  coldDays: z.ZodDefault<z.ZodNumber>;
36
52
  }, z.core.$strip>>;
@@ -48,7 +64,60 @@ export declare const InfraLogsDescriptorSchema: z.ZodObject<{
48
64
  }, z.core.$strip>;
49
65
  export type InfraLogsDescriptor = z.infer<typeof InfraLogsDescriptorSchema>;
50
66
  export type InfraLogsDescriptorInput = z.input<typeof InfraLogsDescriptorSchema>;
67
+ export type LogQueryView = 'events' | 'invocations' | 'calculations' | 'calculations_by_invocation' | 'traces' | 'requests' | 'agents';
68
+ export type LogQueryFilterOperation = 'eq' | 'neq' | 'includes' | 'not_includes' | 'starts_with' | 'ends_with' | 'regex' | 'exists' | 'is_null' | 'in' | 'not_in' | 'gt' | 'gte' | 'lt' | 'lte';
69
+ export interface LogQueryFilter {
70
+ key: string;
71
+ operation: LogQueryFilterOperation;
72
+ type?: 'string' | 'number' | 'boolean';
73
+ value?: string | number | boolean;
74
+ }
75
+ export interface LogQueryOptions {
76
+ view?: LogQueryView;
77
+ filters?: LogQueryFilter[];
78
+ filterCombination?: 'and' | 'or';
79
+ needle?: {
80
+ value: string;
81
+ isRegex?: boolean;
82
+ matchCase?: boolean;
83
+ };
84
+ limit?: number;
85
+ offset?: string;
86
+ from: number;
87
+ to: number;
88
+ orderBy?: {
89
+ value: string;
90
+ order: 'asc' | 'desc';
91
+ };
92
+ }
93
+ /** A historical query's answer. The view fields keep the provider's JSON shape; callers normalize what they read. */
94
+ export interface LogQueryResult {
95
+ queryId?: string;
96
+ events?: JsonValue;
97
+ invocations?: JsonValue;
98
+ calculations?: JsonValue;
99
+ rows?: JsonValue;
100
+ result?: JsonValue;
101
+ count?: number;
102
+ /** How many rows matched before the limit applied, so a truncated answer never reads as complete. */
103
+ matchedBeforeLimit?: number;
104
+ /** Provider-reported scalar facts about what was read (for example the cluster and how many sources). */
105
+ facts?: Readonly<Record<string, string | number | boolean>>;
106
+ }
107
+ /** One command's credential choice for a log source: whose credentials, for which environment. */
108
+ export interface LogsSourceOptions {
109
+ /** `ambient` is the operator's explicit opt-in to the shell's provider credentials; it never consults a store. */
110
+ readonly credentialSource: DatabaseMigrationCredentialSource;
111
+ /** The Vibes deployment environment whose stored credentials the source reads; absent, the runtime's own. */
112
+ readonly environment?: string;
113
+ /** Where the source reports which store supplied its credentials. */
114
+ readonly log: Pick<DatabaseMigrationLog, 'info' | 'warn'>;
115
+ }
51
116
  export interface LogsImplementation {
117
+ /** The same source under one command's credential choice; a source without it reads only its default credentials. */
118
+ create?(options: LogsSourceOptions): Promise<LogsImplementation>;
119
+ /** Optional Kubernetes workload log operation; providers validate with WorkerLogRequestSchema. */
120
+ streamLogs?(request: WorkerLogRequest): Promise<ActiveLogStream>;
52
121
  /** Stream logs in real-time (returns WebSocket URL) */
53
122
  tailLogs(sourceName: string, options?: {
54
123
  status?: 'ok' | 'error' | 'canceled';
@@ -81,11 +150,13 @@ export interface LogsImplementation {
81
150
  timeStart: string;
82
151
  timeEnd?: string;
83
152
  }): Promise<number>;
153
+ /** Query historical log events/invocations when the provider supports it. */
154
+ queryLogs?(sourceName: string, options: LogQueryOptions): Promise<LogQueryResult>;
84
155
  }
85
156
  export interface DefaultLogsImplementation {
86
157
  generateConfig: () => InfraLogsDescriptor;
87
158
  }
88
- export declare const logsKind: import("@vibesdotdev/runtime/schemas/kind").RuntimeKindDescriptorRecord<DefaultLogsImplementation>;
159
+ export declare const logsKind: import("@vibesdotdev/kernel").RuntimeKindDescriptorRecord<DefaultLogsImplementation>;
89
160
  export type InfraLogsKind = InfraLogsDescriptor;
90
161
  export type InfraLogsKindInput = InfraLogsDescriptorInput;
91
162
  //# sourceMappingURL=logs.kind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/logs.kind.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAqD5B,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAiB,CAAC;AACxD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEjF,MAAM,WAAW,kBAAkB;IAClC,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,UAAU,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpJ,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,gCAAgC;IAChC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjF,4BAA4B;IAC5B,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1O,qBAAqB;IACrB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvG;AAED,MAAM,WAAW,yBAAyB;IACzC,cAAc,EAAE,MAAM,mBAAmB,CAAC;CAC1C;AAeD,eAAO,MAAM,QAAQ,oGAMnB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAChD,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,CAAC"}
1
+ {"version":3,"file":"logs.kind.d.ts","sourceRoot":"","sources":["../../src/kinds/logs.kind.ts"],"names":[],"mappings":"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"}