@homeflare/alchemy 0.39.0 → 0.41.0

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 (279) hide show
  1. package/README.md +10 -8
  2. package/dist/caddy/index.js.map +2 -2
  3. package/dist/ceph/auth-entity.d.ts +34 -0
  4. package/dist/ceph/auth-entity.d.ts.map +1 -0
  5. package/dist/ceph/ceph-argv-config.d.ts +10 -0
  6. package/dist/ceph/ceph-argv-config.d.ts.map +1 -0
  7. package/dist/ceph/ceph-argv.d.ts +19 -0
  8. package/dist/ceph/ceph-argv.d.ts.map +1 -0
  9. package/dist/ceph/ceph-auth-form.d.ts +54 -0
  10. package/dist/ceph/ceph-auth-form.d.ts.map +1 -0
  11. package/dist/ceph/ceph-auth-parse.d.ts +56 -0
  12. package/dist/ceph/ceph-auth-parse.d.ts.map +1 -0
  13. package/dist/ceph/ceph-auth-reconcile.d.ts +35 -0
  14. package/dist/ceph/ceph-auth-reconcile.d.ts.map +1 -0
  15. package/dist/ceph/ceph-config-options.d.ts +23 -0
  16. package/dist/ceph/ceph-config-options.d.ts.map +1 -0
  17. package/dist/ceph/ceph-key-leak-assert.d.ts +25 -0
  18. package/dist/ceph/ceph-key-leak-assert.d.ts.map +1 -0
  19. package/dist/ceph/ceph-transport.d.ts +37 -0
  20. package/dist/ceph/ceph-transport.d.ts.map +1 -0
  21. package/dist/ceph/fake-ceph-dial.d.ts +35 -0
  22. package/dist/ceph/fake-ceph-dial.d.ts.map +1 -0
  23. package/dist/ceph/index.d.ts +13 -0
  24. package/dist/ceph/index.d.ts.map +1 -0
  25. package/dist/ceph/index.js +1610 -0
  26. package/dist/ceph/index.js.map +38 -0
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/launchd/fake-runner.d.ts.map +1 -1
  30. package/dist/launchd/index.d.ts +1 -1
  31. package/dist/launchd/index.d.ts.map +1 -1
  32. package/dist/launchd/index.js +7 -1
  33. package/dist/launchd/index.js.map +5 -5
  34. package/dist/launchd/local-runner.d.ts.map +1 -1
  35. package/dist/launchd/runner.d.ts +21 -0
  36. package/dist/launchd/runner.d.ts.map +1 -1
  37. package/dist/launchd/sudo-runner.d.ts.map +1 -1
  38. package/dist/linux/directory-lifecycle.d.ts.map +1 -1
  39. package/dist/linux/fake-linux-host.d.ts.map +1 -1
  40. package/dist/linux/index.d.ts +1 -1
  41. package/dist/linux/index.d.ts.map +1 -1
  42. package/dist/linux/index.js +16 -4
  43. package/dist/linux/index.js.map +7 -7
  44. package/dist/linux/ssh-runner.d.ts.map +1 -1
  45. package/dist/linux/sudo-runner.d.ts.map +1 -1
  46. package/dist/opnsense/alias-form.d.ts +14 -1
  47. package/dist/opnsense/alias-form.d.ts.map +1 -1
  48. package/dist/opnsense/alias.d.ts +1 -1
  49. package/dist/opnsense/alias.d.ts.map +1 -1
  50. package/dist/opnsense/group-form.d.ts +8 -2
  51. package/dist/opnsense/group-form.d.ts.map +1 -1
  52. package/dist/opnsense/group.d.ts +1 -1
  53. package/dist/opnsense/group.d.ts.map +1 -1
  54. package/dist/opnsense/index.js +15 -7
  55. package/dist/opnsense/index.js.map +7 -7
  56. package/dist/opnsense/wire.d.ts +42 -12
  57. package/dist/opnsense/wire.d.ts.map +1 -1
  58. package/dist/proxmox/index.js +62 -39
  59. package/dist/proxmox/index.js.map +8 -7
  60. package/dist/proxmox/qemu-volume.d.ts +12 -2
  61. package/dist/proxmox/qemu-volume.d.ts.map +1 -1
  62. package/dist/proxmox/storage-form.d.ts +28 -3
  63. package/dist/proxmox/storage-form.d.ts.map +1 -1
  64. package/dist/proxmox/storage-plugin-options.d.ts +2 -0
  65. package/dist/proxmox/storage-plugin-options.d.ts.map +1 -0
  66. package/dist/proxmox/storage-wire.d.ts +28 -1
  67. package/dist/proxmox/storage-wire.d.ts.map +1 -1
  68. package/dist/proxmox/storage.d.ts +6 -1
  69. package/dist/proxmox/storage.d.ts.map +1 -1
  70. package/dist/release/index.d.ts +1 -1
  71. package/dist/release/index.d.ts.map +1 -1
  72. package/dist/release/index.js.map +2 -2
  73. package/dist/talos/credentials-write.d.ts +46 -0
  74. package/dist/talos/credentials-write.d.ts.map +1 -0
  75. package/dist/talos/credentials.d.ts +51 -9
  76. package/dist/talos/credentials.d.ts.map +1 -1
  77. package/dist/talos/fake-process.d.ts +56 -0
  78. package/dist/talos/fake-process.d.ts.map +1 -0
  79. package/dist/talos/index.d.ts +19 -4
  80. package/dist/talos/index.d.ts.map +1 -1
  81. package/dist/talos/index.js +357 -173
  82. package/dist/talos/index.js.map +16 -10
  83. package/dist/talos/kubeconfig-attrs.d.ts +4 -0
  84. package/dist/talos/kubeconfig-attrs.d.ts.map +1 -0
  85. package/dist/talos/kubeconfig.d.ts +41 -23
  86. package/dist/talos/kubeconfig.d.ts.map +1 -1
  87. package/dist/talos/machine-config-fixtures.d.ts +60 -0
  88. package/dist/talos/machine-config-fixtures.d.ts.map +1 -0
  89. package/dist/talos/machine-config-poll.d.ts +43 -0
  90. package/dist/talos/machine-config-poll.d.ts.map +1 -0
  91. package/dist/talos/machine-config-read.d.ts +49 -0
  92. package/dist/talos/machine-config-read.d.ts.map +1 -0
  93. package/dist/talos/resource.d.ts +18 -0
  94. package/dist/talos/resource.d.ts.map +1 -1
  95. package/dist/talos/talos-bootstrap-etcd.d.ts +38 -0
  96. package/dist/talos/talos-bootstrap-etcd.d.ts.map +1 -0
  97. package/dist/talos/talos-bootstrap.d.ts +87 -0
  98. package/dist/talos/talos-bootstrap.d.ts.map +1 -1
  99. package/dist/talos/talos-cluster-health.d.ts +43 -1
  100. package/dist/talos/talos-cluster-health.d.ts.map +1 -1
  101. package/dist/talos/talos-errors.d.ts +68 -0
  102. package/dist/talos/talos-errors.d.ts.map +1 -0
  103. package/dist/talos/talos-machine-config.d.ts +51 -15
  104. package/dist/talos/talos-machine-config.d.ts.map +1 -1
  105. package/dist/talos/talosctl.d.ts +7 -0
  106. package/dist/talos/talosctl.d.ts.map +1 -1
  107. package/dist/talos/values.d.ts +23 -3
  108. package/dist/talos/values.d.ts.map +1 -1
  109. package/dist/unifi/acl-rule-drift.d.ts +22 -0
  110. package/dist/unifi/acl-rule-drift.d.ts.map +1 -0
  111. package/dist/unifi/acl-rule-form.d.ts +90 -0
  112. package/dist/unifi/acl-rule-form.d.ts.map +1 -0
  113. package/dist/unifi/acl-rule-ordering-form.d.ts +49 -0
  114. package/dist/unifi/acl-rule-ordering-form.d.ts.map +1 -0
  115. package/dist/unifi/acl-rule-ordering.d.ts +54 -0
  116. package/dist/unifi/acl-rule-ordering.d.ts.map +1 -0
  117. package/dist/unifi/acl-rule.d.ts +49 -0
  118. package/dist/unifi/acl-rule.d.ts.map +1 -0
  119. package/dist/unifi/dns-policy-drift.d.ts +21 -0
  120. package/dist/unifi/dns-policy-drift.d.ts.map +1 -0
  121. package/dist/unifi/dns-policy-form.d.ts +97 -0
  122. package/dist/unifi/dns-policy-form.d.ts.map +1 -0
  123. package/dist/unifi/dns-policy.d.ts +55 -0
  124. package/dist/unifi/dns-policy.d.ts.map +1 -0
  125. package/dist/unifi/firewall-policy-drift.d.ts +26 -0
  126. package/dist/unifi/firewall-policy-drift.d.ts.map +1 -0
  127. package/dist/unifi/firewall-policy-form.d.ts +102 -0
  128. package/dist/unifi/firewall-policy-form.d.ts.map +1 -0
  129. package/dist/unifi/firewall-policy-ordering-form.d.ts +66 -0
  130. package/dist/unifi/firewall-policy-ordering-form.d.ts.map +1 -0
  131. package/dist/unifi/firewall-policy-ordering.d.ts +57 -0
  132. package/dist/unifi/firewall-policy-ordering.d.ts.map +1 -0
  133. package/dist/unifi/firewall-policy.d.ts +57 -0
  134. package/dist/unifi/firewall-policy.d.ts.map +1 -0
  135. package/dist/unifi/index.d.ts +7 -0
  136. package/dist/unifi/index.d.ts.map +1 -1
  137. package/dist/unifi/index.js +588 -3
  138. package/dist/unifi/index.js.map +24 -4
  139. package/dist/unifi/paginate.d.ts +0 -12
  140. package/dist/unifi/paginate.d.ts.map +1 -1
  141. package/dist/unifi/providers.d.ts +1 -1
  142. package/dist/unifi/providers.d.ts.map +1 -1
  143. package/dist/unifi/scan-source.d.ts +11 -0
  144. package/dist/unifi/scan-source.d.ts.map +1 -0
  145. package/dist/unifi/traffic-matching-list-drift.d.ts +22 -0
  146. package/dist/unifi/traffic-matching-list-drift.d.ts.map +1 -0
  147. package/dist/unifi/traffic-matching-list-form.d.ts +56 -0
  148. package/dist/unifi/traffic-matching-list-form.d.ts.map +1 -0
  149. package/dist/unifi/traffic-matching-list.d.ts +51 -0
  150. package/dist/unifi/traffic-matching-list.d.ts.map +1 -0
  151. package/dist/unifi/wifi-broadcast-drift.d.ts +22 -0
  152. package/dist/unifi/wifi-broadcast-drift.d.ts.map +1 -0
  153. package/dist/unifi/wifi-broadcast-form.d.ts +127 -0
  154. package/dist/unifi/wifi-broadcast-form.d.ts.map +1 -0
  155. package/dist/unifi/wifi-broadcast.d.ts +73 -0
  156. package/dist/unifi/wifi-broadcast.d.ts.map +1 -0
  157. package/docs/distilled-interim.md +7 -0
  158. package/docs/launchd.md +5 -3
  159. package/docs/provider-standard.md +5 -1
  160. package/docs/talos-argocd-dogfood.md +160 -0
  161. package/docs/unifi-acl-rule.md +122 -0
  162. package/docs/unifi-dns-policy.md +75 -0
  163. package/docs/unifi-firewall-policy.md +109 -0
  164. package/docs/unifi-traffic-matching-list.md +82 -0
  165. package/docs/unifi-wifi.md +120 -0
  166. package/docs/unifi.md +10 -5
  167. package/package.json +7 -3
  168. package/src/ceph/auth-entity.ts +74 -0
  169. package/src/ceph/ceph-argv-config.ts +78 -0
  170. package/src/ceph/ceph-argv.test.ts +226 -0
  171. package/src/ceph/ceph-argv.ts +189 -0
  172. package/src/ceph/ceph-auth-form.test.ts +103 -0
  173. package/src/ceph/ceph-auth-form.ts +107 -0
  174. package/src/ceph/ceph-auth-parse.test.ts +155 -0
  175. package/src/ceph/ceph-auth-parse.ts +121 -0
  176. package/src/ceph/ceph-auth-reconcile-secrecy.test.ts +82 -0
  177. package/src/ceph/ceph-auth-reconcile.test.ts +233 -0
  178. package/src/ceph/ceph-auth-reconcile.ts +119 -0
  179. package/src/ceph/ceph-config-options.test.ts +44 -0
  180. package/src/ceph/ceph-config-options.ts +36 -0
  181. package/src/ceph/ceph-key-leak-assert.ts +35 -0
  182. package/src/ceph/ceph-no-output-logging.test.ts +52 -0
  183. package/src/ceph/ceph-transport.test.ts +125 -0
  184. package/src/ceph/ceph-transport.ts +117 -0
  185. package/src/ceph/fake-ceph-dial.ts +55 -0
  186. package/src/ceph/index.ts +12 -0
  187. package/src/index.ts +1 -0
  188. package/src/launchd/fake-runner.ts +2 -0
  189. package/src/launchd/index.ts +8 -1
  190. package/src/launchd/local-runner.ts +16 -1
  191. package/src/launchd/runner.ts +22 -0
  192. package/src/launchd/sudo-runner.ts +3 -0
  193. package/src/linux/directory-lifecycle.ts +18 -3
  194. package/src/linux/directory-sudo.test.ts +59 -0
  195. package/src/linux/directory.test.ts +34 -8
  196. package/src/linux/fake-linux-host.ts +2 -0
  197. package/src/linux/index.ts +1 -0
  198. package/src/linux/ssh-runner.ts +4 -0
  199. package/src/linux/sudo-runner.ts +3 -0
  200. package/src/opnsense/alias-form.test.ts +24 -12
  201. package/src/opnsense/alias-form.ts +20 -7
  202. package/src/opnsense/alias.test.ts +13 -6
  203. package/src/opnsense/alias.ts +16 -10
  204. package/src/opnsense/group-form.test.ts +12 -8
  205. package/src/opnsense/group-form.ts +13 -4
  206. package/src/opnsense/group.test.ts +18 -7
  207. package/src/opnsense/group.ts +10 -3
  208. package/src/opnsense/wire.ts +57 -12
  209. package/src/proxmox/qemu-volume.test.ts +153 -4
  210. package/src/proxmox/qemu-volume.ts +71 -14
  211. package/src/proxmox/storage-form.ts +48 -8
  212. package/src/proxmox/storage-plugin-options.ts +45 -0
  213. package/src/proxmox/storage-update.test.ts +183 -0
  214. package/src/proxmox/storage-wire.ts +54 -7
  215. package/src/proxmox/storage.ts +18 -6
  216. package/src/release/index.ts +1 -0
  217. package/src/talos/credentials-write.test.ts +81 -0
  218. package/src/talos/credentials-write.ts +95 -0
  219. package/src/talos/credentials.test.ts +157 -0
  220. package/src/talos/credentials.ts +160 -90
  221. package/src/talos/fake-process.ts +94 -0
  222. package/src/talos/index.ts +39 -4
  223. package/src/talos/kubeconfig-attrs.ts +55 -0
  224. package/src/talos/kubeconfig.test.ts +256 -0
  225. package/src/talos/kubeconfig.ts +170 -90
  226. package/src/talos/machine-config-fixtures.ts +86 -0
  227. package/src/talos/machine-config-poll.test.ts +57 -0
  228. package/src/talos/machine-config-poll.ts +82 -0
  229. package/src/talos/machine-config-read.ts +118 -0
  230. package/src/talos/resource.ts +19 -0
  231. package/src/talos/secrets-gate.test.ts +63 -0
  232. package/src/talos/talos-bootstrap-etcd.ts +71 -0
  233. package/src/talos/talos-bootstrap.test.ts +218 -0
  234. package/src/talos/talos-bootstrap.ts +151 -45
  235. package/src/talos/talos-cluster-health.test.ts +143 -0
  236. package/src/talos/talos-cluster-health.ts +91 -28
  237. package/src/talos/talos-errors.ts +85 -0
  238. package/src/talos/talos-machine-config.test.ts +189 -0
  239. package/src/talos/talos-machine-config.ts +102 -88
  240. package/src/talos/talosctl.ts +8 -0
  241. package/src/talos/values.test.ts +34 -6
  242. package/src/talos/values.ts +41 -7
  243. package/src/unifi/acl-rule-drift.ts +57 -0
  244. package/src/unifi/acl-rule-form.ts +135 -0
  245. package/src/unifi/acl-rule-ordering-form.ts +79 -0
  246. package/src/unifi/acl-rule-ordering.test.ts +141 -0
  247. package/src/unifi/acl-rule-ordering.ts +70 -0
  248. package/src/unifi/acl-rule.test.ts +183 -0
  249. package/src/unifi/acl-rule.ts +61 -0
  250. package/src/unifi/discriminated-filter-decode.test.ts +134 -0
  251. package/src/unifi/dns-policy-drift.ts +48 -0
  252. package/src/unifi/dns-policy-form.ts +142 -0
  253. package/src/unifi/dns-policy.test.ts +154 -0
  254. package/src/unifi/dns-policy.ts +67 -0
  255. package/src/unifi/firewall-policy-drift.test.ts +151 -0
  256. package/src/unifi/firewall-policy-drift.ts +55 -0
  257. package/src/unifi/firewall-policy-filter-roundtrip.test.ts +143 -0
  258. package/src/unifi/firewall-policy-form.ts +146 -0
  259. package/src/unifi/firewall-policy-ordering-form.ts +111 -0
  260. package/src/unifi/firewall-policy-ordering.test.ts +185 -0
  261. package/src/unifi/firewall-policy-ordering.ts +87 -0
  262. package/src/unifi/firewall-policy.test.ts +183 -0
  263. package/src/unifi/firewall-policy.ts +73 -0
  264. package/src/unifi/index.ts +63 -0
  265. package/src/unifi/paginate.test.ts +24 -0
  266. package/src/unifi/paginate.ts +15 -3
  267. package/src/unifi/providers.ts +19 -1
  268. package/src/unifi/scan-source.ts +64 -0
  269. package/src/unifi/traffic-matching-list-drift.ts +40 -0
  270. package/src/unifi/traffic-matching-list-form.ts +77 -0
  271. package/src/unifi/traffic-matching-list.test.ts +202 -0
  272. package/src/unifi/traffic-matching-list.ts +78 -0
  273. package/src/unifi/wifi-broadcast-details-call.test.ts +92 -0
  274. package/src/unifi/wifi-broadcast-drift.ts +69 -0
  275. package/src/unifi/wifi-broadcast-form.ts +211 -0
  276. package/src/unifi/wifi-broadcast-secrets.test.ts +145 -0
  277. package/src/unifi/wifi-broadcast.test.ts +155 -0
  278. package/src/unifi/wifi-broadcast.ts +90 -0
  279. package/src/unifi/write-op-reference.test.ts +8 -54
package/README.md CHANGED
@@ -304,14 +304,16 @@ import { ArgocdRepository, providers } from '@homeflare/alchemy/argocd';
304
304
 
305
305
  ## UniFi Network — `@homeflare/alchemy/unifi`
306
306
 
307
- `Unifi.Network` and `Unifi.FirewallZone`, generated from Ubiquiti's own UniFi Network
308
- Integration API 10.4.57 via `@distilled.cloud/unifi-network`. ⛔ **READ-ONLY, by Tim's rule
309
- (2026-09-24):** `reconcile`/`delete` both fail with a typed `UnifiWriteRefused` naming the
310
- policy — this family never calls a write operation, only `getNetworkDetails`/`getFirewallZone`
311
- and their list counterparts. ⛔ `read` answers `Unowned` on every match (never a silent adopt —
312
- `adopt(true)` is on by default via the `network`/`firewallZone` constructors), and a UniFi
313
- **Console ID** (part of a cloud-connector base URL) is never logged, committed or written to
314
- state: [docs/unifi.md](./docs/unifi.md).
307
+ `Unifi.Network`, `Unifi.FirewallZone`, `Unifi.DnsPolicy`, `Unifi.AclRule` and
308
+ `Unifi.AclRuleOrdering`, generated from Ubiquiti's own UniFi Network Integration API 10.4.57 via
309
+ `@distilled.cloud/unifi-network`. ⛔ **READ-ONLY, by Tim's rule (2026-09-24):** `reconcile`/`delete`
310
+ both fail with a typed `UnifiWriteRefused` naming the policy — no family here calls a write
311
+ operation, only each object's own `get*` and its list counterpart. ⛔ `read` answers `Unowned` on
312
+ every match (never a silent adopt — `adopt(true)` is on by default via each convenience
313
+ constructor), and a UniFi **Console ID** (part of a cloud-connector base URL) is never logged,
314
+ committed or written to state: [docs/unifi.md](./docs/unifi.md) (Network/FirewallZone),
315
+ [docs/unifi-dns-policy.md](./docs/unifi-dns-policy.md) and
316
+ [docs/unifi-acl-rule.md](./docs/unifi-acl-rule.md).
315
317
 
316
318
  ```ts
317
319
  import { declareNetwork, network, providers } from '@homeflare/alchemy/unifi';
@@ -30,12 +30,12 @@
30
30
  "/**\n * `caddyWithFile` — one Caddyfile, applied to the running Caddy AND written to the file Caddy\n * starts from, so a restart keeps it (decision 23: \"the file also lands on disk\").\n *\n * ★ REUSES launchd's HostFile, NOT A SECOND FILE WRITER. The file is an ordinary `Host.File`\n * (atomic write, digest diff, symlink refusal, `--adopt` for a file already there); the config is\n * a `Caddy.Config` whose `sourceFile` is that HostFile's `path` Output — which is what orders them.\n *\n * ⛔ THE ORDER IS FILE, THEN `/load`. The dependency makes Alchemy write the file first, and it is the\n * only order that bootstraps: a new host's Caddy launchd job starts from the file, before any\n * admin API exists to load into. Its cost, and what bounds it:\n * · A Caddyfile that does not ADAPT never reaches disk once the config has state: CaddyConfig's\n * diff adapts it at PLAN time and fails the plan. (On the very first deploy the file's path is\n * still an Output, Alchemy skips the adoption probe, and the check runs at apply instead.)\n * · A Caddyfile that adapts but that Caddy then REFUSES (a port in use, a missing cert file) is\n * on disk when `/load` fails. Caddy keeps serving the old config, the deploy fails with Caddy's\n * reason — and a Caddy started without `--resume` would load the refused file on its next\n * restart. Managed Caddies run with `--resume` (decision, 2026-09-21; docs/caddy.md): they\n * restart from `autosave.json`, the last config Caddy ACCEPTED, and the file is only the\n * first-boot fallback.\n * · The skipped probe is also why the ADOPTION check of a first deploy happens at apply: a Caddy\n * running a config this stack did not load is refused before `/load` unless the deploy runs\n * with `--adopt` (config-lifecycle.ts reconcileConfig) — after this file is written.\n * ⛔ SECRETS ARE REFUSED HERE, AT DECLARATION, before the HostFile exists: its `content` is a prop\n * too, and would carry a literal into state even if the CaddyConfig then refused it.\n * ★ BOTH RETAIN. Removing this from a stack must not delete the file a restart needs.\n */\nimport * as Effect from 'effect/Effect';\nimport * as RemovalPolicy from 'alchemy/RemovalPolicy';\nimport { HostFile } from '../launchd/host-file.ts';\nimport { CaddyConfig } from './config.ts';\nimport { configProblems } from './config-form.ts';\n\nexport interface CaddyWithFileProps {\n /** The whole Caddyfile. ⛔ Never a secret — use `{env.NAME}` / `{file./path}` placeholders. */\n readonly caddyfile: string;\n /** Absolute path Caddy is started with: `caddy run --config <path> --adapter caddyfile`. */\n readonly path: string;\n /** @default 0o644 */\n readonly mode?: number;\n readonly owner?: string | number;\n readonly group?: string | number;\n}\n\n/**\n * Declare the file (`<id>-file`) and the config (`<id>`). Provide `launchdProviders()` for the\n * file and `caddyProviders()` for the config.\n *\n * const { config, file } = yield* caddyWithFile('caddy', { caddyfile, path: '/usr/local/etc/Caddyfile' });\n */\nexport const caddyWithFile = (id: string, props: CaddyWithFileProps) =>\n Effect.gen(function* () {\n const found = configProblems({ caddyfile: props.caddyfile, sourceFile: props.path });\n if (found.length > 0) {\n return yield* Effect.fail(new Error(`caddyWithFile ${id}: ${found.join('; ')}`));\n }\n const file = yield* HostFile(`${id}-file`, {\n content: props.caddyfile,\n mode: props.mode ?? 0o644,\n path: props.path,\n ...(props.owner === undefined ? {} : { owner: props.owner }),\n ...(props.group === undefined ? {} : { group: props.group }),\n }).pipe(RemovalPolicy.retain());\n const config = yield* CaddyConfig(id, { caddyfile: props.caddyfile, sourceFile: file.path });\n return { config, file };\n });\n",
31
31
  "/**\n * `Host.File` — one text file on the host, declared: content, mode, owner, group.\n *\n * - create / update — atomic write (temp file in the same directory, mode and owner set, rename),\n * skipped when the file already matches; then read back and compared.\n * - read — lstat plus the SHA-256 of the bytes.\n * - diff — declared SHA-256 against the stored and on-disk digest, plus mode and owner.\n * - replace — only when `path` changes; create-before-delete.\n * - delete — removes the file.\n *\n * ⛔ NEVER A SECRET — see host-file-form.ts. Secret files stay rendered by openbao-agent.\n * ⚠️ NOTHING IS ADOPTED WITHOUT `--adopt`: a file already at the path reads as `Unowned`, and where\n * the plan never asked, reconcile refuses it unless adoption is on (docs/ownership.md).\n * ★ IT LIVES IN THE launchd SUBPATH because the two travel together: a Mac host stack declares a\n * daemon's config file and the daemon that reads it, through the same HostRunner.\n */\nimport { Resource } from 'alchemy';\nimport { Unowned } from 'alchemy/AdoptPolicy';\nimport { isResolved } from 'alchemy/Diff';\nimport * as Provider from 'alchemy/Provider';\nimport * as Effect from 'effect/Effect';\nimport { adoptsAtApply } from '../ownership/adopt.ts';\nimport { noteUnfinished } from '../ownership/resume.ts';\nimport { oneFile } from './file-identity.ts';\nimport { lift, resolvedString } from './host-effect.ts';\nimport type { HostFileAttributes, HostFileProps } from './host-file-form.ts';\nimport { deleteFile, diffFile, readFileAttributes, reconcileFile } from './host-file-lifecycle.ts';\nimport { HostRunnerService } from './runner.ts';\n\nexport type { HostFileAttributes, HostFileProps } from './host-file-form.ts';\n\nexport interface HostFile extends Resource<'Host.File', HostFileProps, HostFileAttributes> {}\n\nexport const HostFile = Resource<HostFile>('Host.File');\n\nexport const HostFileProvider = () =>\n Provider.effect(\n HostFile,\n Effect.gen(function* () {\n const runner = yield* HostRunnerService;\n return HostFile.Provider.of({\n list: () => Effect.succeed([]),\n\n read: ({ olds, output }) =>\n lift(async () => {\n const found = await readFileAttributes(runner, olds.path);\n if (found === undefined) return undefined;\n return output === undefined ? Unowned(found) : found;\n }),\n\n diff: ({ instanceId, news, output }) => {\n // ★ An unfinished generation of our own: `--adopt` may resume it (ownership/resume.ts).\n if (output === undefined) return noteUnfinished(instanceId);\n if (isResolved(news)) return lift(() => diffFile(runner, news, output));\n // ⛔ A new path is a replace even while `content` is unresolved (an Output templated in):\n // the engine's default would be an update, which writes the new path and never\n // removes the old one. reconcileFile also defends, for a path that is an Output.\n // ⛔ Unless the new path is the old FILE under another spelling (file-identity.ts):\n // a replace's Phase 2 would delete it. The update then records the new spelling.\n const path = resolvedString(news, 'path');\n if (path === undefined || path === output.path) return Effect.succeed(undefined);\n return lift(async () =>\n (await oneFile(runner, path, output.path)) === true\n ? undefined\n : { action: 'replace' as const },\n );\n },\n\n // ★ `--adopt` reaches the apply too: the probe never ran for a create with an Output prop.\n // ⛔ A create or an unfinished generation — never a fresh replace's, never offered it.\n reconcile: ({ fqn, instanceId, news, output }) =>\n Effect.flatMap(adoptsAtApply({ fqn, instanceId, output }), (adopt) =>\n lift(() => reconcileFile(runner, news, output, adopt)),\n ),\n\n delete: ({ output }) => lift(() => deleteFile(runner, output)),\n });\n }),\n );\n",
32
32
  "/**\n * Whether two paths name ONE file — the question a move must answer before it deletes its old\n * path, and a plan before it answers `replace`.\n *\n * 🔴 MEASURED 2026-09-22 (release/binary-alias.test.ts, localRunner over a real temp directory,\n * through Alchemy's own Plan and Apply): a Release.Binary whose directory was respelled to\n * another path for the SAME file — through a symlinked parent (`/tmp` → `/private/tmp`, `/etc`\n * → `/private/etc`), or by case alone on case-insensitive APFS, macOS's default — planned a\n * `replace`. The new generation took the file already there as its own (same bytes, same mode:\n * file-converge.ts's resume rule), then Phase 2 deleted the old generation's path, which was that\n * same file. The deploy SUCCEEDED and the binary was gone. The `update` route lost it in one step:\n * convergeFile's move removed the old path after \"writing\" the new one. Host.File shares both.\n * ★ IDENTITY, NOT SPELLING. Case-folding the strings would be wrong on a case-sensitive volume and\n * blind to a symlinked parent; device and inode from lstat are what the kernel itself compares.\n * ⚠️ A HARD LINK also shares an inode. At the old path of a move it is therefore kept, not removed:\n * one stray link left behind, rather than the risk of deleting the file just verified.\n */\nimport type { FileStat, HostRunner } from './runner.ts';\n\n/**\n * `true` when both entries exist and are one file; `false` when either is absent or they differ;\n * `undefined` when the runner reported no identity, so nobody can tell (fakes, custom runners).\n */\nexport const sameEntry = (\n a: FileStat | undefined,\n b: FileStat | undefined,\n): boolean | undefined => {\n if (a === undefined || b === undefined) return false;\n if (a.dev === undefined || a.ino === undefined || b.dev === undefined || b.ino === undefined) {\n return undefined;\n }\n return a.dev === b.dev && a.ino === b.ino;\n};\n\n/** Whether `a` and `b` are one file on this host right now. Equal strings always are. */\nexport const oneFile = async (\n runner: HostRunner,\n a: string,\n b: string,\n): Promise<boolean | undefined> => {\n if (a === b) return true;\n const [left, right] = await Promise.all([runner.stat(a), runner.stat(b)]);\n return sameEntry(left, right);\n};\n\n/**\n * The last step of a move: `remove` the old path unless it is the file just verified at `path`.\n * ⚠️ A runner that reports no identity cannot be asked beforehand, so `path` is checked after: a\n * file lost to a respelling then fails the deploy instead of reporting success.\n */\nexport const leaveOldPath = async (\n runner: HostRunner,\n oldPath: string,\n path: string,\n remove: () => Promise<void>,\n refuse: (path: string, message: string) => Error,\n): Promise<void> => {\n const same = await oneFile(runner, oldPath, path);\n if (same === true) return;\n await remove();\n if (same === undefined && (await runner.stat(path)) === undefined) {\n throw refuse(\n path,\n `removing the old path ${oldPath} removed this file too: they are one file under two ` +\n 'spellings (a symlinked parent, or case on a case-insensitive volume). Deploy again to ' +\n 'reinstall it, and keep one spelling.',\n );\n }\n};\n",
33
- "/**\n * The one seam between the launchd providers and the host: every file read, file write and\n * `launchctl` call goes through a HostRunner, and nothing in this directory touches the host any\n * other way.\n *\n * ★ WHY A SEAM AND NOT DIRECT node:fs CALLS. launchd has no SDK — the provider renders a plist and\n * drives `launchctl` — so the only way to test the lifecycle without a real launchd (and without\n * writing /Library) is to swap the host out. fake-runner.ts is an in-memory host with a scripted\n * launchd; local-runner.ts is the real one. The same seam is where a consumer plugs in a runner\n * that reaches a host some other way.\n *\n * ★ PROMISES, NOT EFFECTS, ON PURPOSE. A consumer writing their own runner implements plain async\n * functions; the providers lift them into Effect at the call site (host-effect.ts).\n */\nimport * as Context from 'effect/Context';\nimport * as Layer from 'effect/Layer';\n\n/** One finished process. ⛔ `stdout` may carry anything the job's environment holds — never log it. */\nexport type ExecResult = {\n readonly exitCode: number;\n readonly stdout: string;\n readonly stderr: string;\n};\n\n/**\n * What `lstat` says about a path. ⚠️ lstat, not stat: a symlink is reported as a symlink, because\n * writing through one would change a file this resource never named.\n */\nexport type FileStat = {\n readonly kind: 'file' | 'directory' | 'symlink' | 'other';\n /** Permission bits only (`& 0o7777`), never the file-type bits. */\n readonly mode: number;\n readonly uid: number;\n readonly gid: number;\n readonly size: number;\n /**\n * The entry's identity, device and inode, when the runner can say. ★ Two spellings of ONE file\n * (`/tmp/x` and `/private/tmp/x`; `Bin` and `bin` on case-insensitive APFS) differ as strings\n * and match here, and a move must not delete its old path when that path IS the new file\n * (file-identity.ts). Optional: a runner that leaves them out gets a check after the fact.\n */\n readonly dev?: number;\n readonly ino?: number;\n};\n\nexport type WriteOptions = {\n /**\n * Permission bits for the final file. localRunner applies them BEFORE the file is visible at\n * `path`. ⚠️ sudoRunner's `install -S` does NOT: MEASURED 2026-09-22 on macOS 27.2 (an lstat\n * poller racing /usr/bin/install), the new inode appears at `path` as 0600 and is chmodded\n * 0.2–0.4 ms later. Never torn, never wider than declared, but briefly not executable.\n */\n readonly mode: number;\n /** Numeric owner; omitted means whoever the runner writes as. */\n readonly uid?: number;\n /** Numeric group; omitted means the directory's default. */\n readonly gid?: number;\n};\n\nexport type HostUser = { readonly uid: number; readonly gid: number; readonly home: string };\n\nexport interface HostRunner {\n /**\n * ⛔ DECLARED, NEVER INFERRED. `true` only when this runner can do every root-needing call the\n * providers make of it: every call already runs as root (a runner that talks to a root helper,\n * say), or the runner elevates exactly those calls (sudoRunner). The providers refuse\n * system-domain writes unless `effectiveUid()` is 0 or this is `true`, so claiming it falsely\n * turns that refusal into an EACCES halfway through a deploy.\n * ⛔ THE KIT NEVER ELEVATES SILENTLY. localRunner() never calls `sudo`: a deploy that prompts for\n * a password mid-plan, or quietly borrows a cached sudo ticket, is exactly the \"no silent sudo\"\n * failure. sudoRunner() does call `sudo -n`, but only when a stack passes it explicitly, only\n * for the argv shapes in sudo-allowlist.ts, and logging each one (decided 2026-09-21).\n */\n readonly privileged: boolean;\n /** The uid file writes and launchctl calls run as. */\n effectiveUid(): number;\n /** Run a program with an argv — ⛔ never through a shell. */\n exec(argv: readonly string[]): Promise<ExecResult>;\n /** File bytes, or `undefined` when nothing is at `path`. */\n readFile(path: string): Promise<Uint8Array | undefined>;\n /** lstat, or `undefined` when nothing is at `path`. */\n stat(path: string): Promise<FileStat | undefined>;\n /**\n * Write `bytes` so that `path` holds either the old file or the new one, never a torn mix:\n * a temporary file in the same directory, mode and owner set on it, then rename(2) over `path`\n * (sudoRunner: the mode just after the rename, measured — see WriteOptions.mode; the owner too,\n * ⚠️ REASONED NOT MEASURED, since measuring it needs root).\n * ⚠️ The parent directory must exist; creating it would invent an owner and mode nobody declared.\n */\n writeFileAtomic(path: string, bytes: Uint8Array, options: WriteOptions): Promise<void>;\n /**\n * PLAN TIME: refuse, reading only and writing nothing, a write this runner would refuse at\n * apply — so the plan shows it before any resource is applied. Optional: a runner without it\n * refuses at the write. ★ sudoRunner implements it with the checks it makes before `sudo -n`;\n * ⛔ it never elevates, so a plan still never calls sudo.\n */\n checkWrite?(path: string, options: WriteOptions): Promise<void>;\n /** Remove a file. Idempotent: nothing at `path` is success. */\n removeFile(path: string): Promise<void>;\n /** A user by name or numeric id, or `undefined` when the host has none. */\n lookupUser(nameOrId: string): Promise<HostUser | undefined>;\n /** A group's gid by name or numeric id, or `undefined` when the host has none. */\n lookupGroup(nameOrId: string): Promise<number | undefined>;\n /** Wait between launchctl polls. ★ Injected so a test never sleeps for real. */\n sleep(ms: number): Promise<void>;\n}\n\n/** The Effect service every launchd provider reads its runner from. */\nexport class HostRunnerService extends Context.Service<HostRunnerService, HostRunner>()(\n 'homeflare/launchd/HostRunner',\n) {}\n\n/** Provide a runner to the providers: `Layer.provide(hostRunnerLayer(localRunner()))`. */\nexport const hostRunnerLayer = (runner: HostRunner): Layer.Layer<HostRunnerService> =>\n Layer.succeed(HostRunnerService, runner);\n\n/** True when this runner may write root-owned paths and drive the system domain. */\nexport const canActAsRoot = (runner: HostRunner): boolean =>\n runner.privileged || runner.effectiveUid() === 0;\n",
33
+ "/**\n * The one seam between the launchd providers and the host: every file read, file write and\n * `launchctl` call goes through a HostRunner, and nothing in this directory touches the host any\n * other way.\n *\n * ★ WHY A SEAM AND NOT DIRECT node:fs CALLS. launchd has no SDK — the provider renders a plist and\n * drives `launchctl` — so the only way to test the lifecycle without a real launchd (and without\n * writing /Library) is to swap the host out. fake-runner.ts is an in-memory host with a scripted\n * launchd; local-runner.ts is the real one. The same seam is where a consumer plugs in a runner\n * that reaches a host some other way.\n *\n * ★ PROMISES, NOT EFFECTS, ON PURPOSE. A consumer writing their own runner implements plain async\n * functions; the providers lift them into Effect at the call site (host-effect.ts).\n */\nimport * as Context from 'effect/Context';\nimport * as Layer from 'effect/Layer';\n\n/** One finished process. ⛔ `stdout` may carry anything the job's environment holds — never log it. */\nexport type ExecResult = {\n readonly exitCode: number;\n readonly stdout: string;\n readonly stderr: string;\n};\n\n/**\n * What `lstat` says about a path. ⚠️ lstat, not stat: a symlink is reported as a symlink, because\n * writing through one would change a file this resource never named.\n */\nexport type FileStat = {\n readonly kind: 'file' | 'directory' | 'symlink' | 'other';\n /** Permission bits only (`& 0o7777`), never the file-type bits. */\n readonly mode: number;\n readonly uid: number;\n readonly gid: number;\n readonly size: number;\n /**\n * The entry's identity, device and inode, when the runner can say. ★ Two spellings of ONE file\n * (`/tmp/x` and `/private/tmp/x`; `Bin` and `bin` on case-insensitive APFS) differ as strings\n * and match here, and a move must not delete its old path when that path IS the new file\n * (file-identity.ts). Optional: a runner that leaves them out gets a check after the fact.\n */\n readonly dev?: number;\n readonly ino?: number;\n};\n\nexport type WriteOptions = {\n /**\n * Permission bits for the final file. localRunner applies them BEFORE the file is visible at\n * `path`. ⚠️ sudoRunner's `install -S` does NOT: MEASURED 2026-09-22 on macOS 27.2 (an lstat\n * poller racing /usr/bin/install), the new inode appears at `path` as 0600 and is chmodded\n * 0.2–0.4 ms later. Never torn, never wider than declared, but briefly not executable.\n */\n readonly mode: number;\n /** Numeric owner; omitted means whoever the runner writes as. */\n readonly uid?: number;\n /** Numeric group; omitted means the directory's default. */\n readonly gid?: number;\n};\n\nexport type HostUser = { readonly uid: number; readonly gid: number; readonly home: string };\n\n/**\n * The two host families a HostRunner ever actually targets. ★ Not `NodeJS.Platform`: nothing\n * here runs against `win32`/`aix`/etc, and a narrower type is what makes `runner.platform ===\n * 'darwin'` exhaustive rather than a string comparison that silently matches nothing.\n */\nexport type HostPlatform = 'darwin' | 'linux';\n\nexport interface HostRunner {\n /**\n * ⛔ DECLARED, NEVER INFERRED — same rule as `privileged`, and the same failure mode. The OS of\n * the TARGET this runner writes to, never of the process running Alchemy: `localRunner()` may\n * run ON either, but `sshRunner()`/`sshSudoRunner()` always reach a Linux host from wherever\n * Alchemy itself happens to run.\n * 🔴 INCIDENT, homeflare-ct100 2026-09-27: `Host.Directory`'s chmod/chown end-of-options token\n * (directory-lifecycle.ts `chmodChownEnd`) read `process.platform` — the Mac mini's own OS —\n * instead of the runner's target. Deploying from the Mac to CT100 (a Debian LXC over\n * `sshSudoRunner`) dropped GNU's required `--`, and `sudo-allowlist-dir.ts`'s `dirProgramProblem`\n * refused every chown with `SudoRefusedError` even though the path was under a declared prefix.\n * `localRunner()`'s own local deploys never showed it: there, `process.platform` and the\n * target happen to be the same machine. This field is the fix: every call site that needs to\n * know the target's OS reads `runner.platform`, never `process.platform`.\n */\n readonly platform: HostPlatform;\n /**\n * ⛔ DECLARED, NEVER INFERRED. `true` only when this runner can do every root-needing call the\n * providers make of it: every call already runs as root (a runner that talks to a root helper,\n * say), or the runner elevates exactly those calls (sudoRunner). The providers refuse\n * system-domain writes unless `effectiveUid()` is 0 or this is `true`, so claiming it falsely\n * turns that refusal into an EACCES halfway through a deploy.\n * ⛔ THE KIT NEVER ELEVATES SILENTLY. localRunner() never calls `sudo`: a deploy that prompts for\n * a password mid-plan, or quietly borrows a cached sudo ticket, is exactly the \"no silent sudo\"\n * failure. sudoRunner() does call `sudo -n`, but only when a stack passes it explicitly, only\n * for the argv shapes in sudo-allowlist.ts, and logging each one (decided 2026-09-21).\n */\n readonly privileged: boolean;\n /** The uid file writes and launchctl calls run as. */\n effectiveUid(): number;\n /** Run a program with an argv — ⛔ never through a shell. */\n exec(argv: readonly string[]): Promise<ExecResult>;\n /** File bytes, or `undefined` when nothing is at `path`. */\n readFile(path: string): Promise<Uint8Array | undefined>;\n /** lstat, or `undefined` when nothing is at `path`. */\n stat(path: string): Promise<FileStat | undefined>;\n /**\n * Write `bytes` so that `path` holds either the old file or the new one, never a torn mix:\n * a temporary file in the same directory, mode and owner set on it, then rename(2) over `path`\n * (sudoRunner: the mode just after the rename, measured — see WriteOptions.mode; the owner too,\n * ⚠️ REASONED NOT MEASURED, since measuring it needs root).\n * ⚠️ The parent directory must exist; creating it would invent an owner and mode nobody declared.\n */\n writeFileAtomic(path: string, bytes: Uint8Array, options: WriteOptions): Promise<void>;\n /**\n * PLAN TIME: refuse, reading only and writing nothing, a write this runner would refuse at\n * apply — so the plan shows it before any resource is applied. Optional: a runner without it\n * refuses at the write. ★ sudoRunner implements it with the checks it makes before `sudo -n`;\n * ⛔ it never elevates, so a plan still never calls sudo.\n */\n checkWrite?(path: string, options: WriteOptions): Promise<void>;\n /** Remove a file. Idempotent: nothing at `path` is success. */\n removeFile(path: string): Promise<void>;\n /** A user by name or numeric id, or `undefined` when the host has none. */\n lookupUser(nameOrId: string): Promise<HostUser | undefined>;\n /** A group's gid by name or numeric id, or `undefined` when the host has none. */\n lookupGroup(nameOrId: string): Promise<number | undefined>;\n /** Wait between launchctl polls. ★ Injected so a test never sleeps for real. */\n sleep(ms: number): Promise<void>;\n}\n\n/** The Effect service every launchd provider reads its runner from. */\nexport class HostRunnerService extends Context.Service<HostRunnerService, HostRunner>()(\n 'homeflare/launchd/HostRunner',\n) {}\n\n/** Provide a runner to the providers: `Layer.provide(hostRunnerLayer(localRunner()))`. */\nexport const hostRunnerLayer = (runner: HostRunner): Layer.Layer<HostRunnerService> =>\n Layer.succeed(HostRunnerService, runner);\n\n/** True when this runner may write root-owned paths and drive the system domain. */\nexport const canActAsRoot = (runner: HostRunner): boolean =>\n runner.privileged || runner.effectiveUid() === 0;\n",
34
34
  "/**\n * The one path a declared file's bytes take onto a host, shared by every resource that owns ONE\n * whole file: `Host.File` (text it was handed) and `Release.Binary` (bytes it downloaded and\n * verified). Read, diff, converge and delete, as plain async functions over a HostRunner.\n *\n * ★ EXTRACTED FROM host-file-lifecycle.ts, NOT COPIED (2026-09-22). The ownership rules below — a\n * file this resource does not own is never overwritten, a move onto an occupied path stays\n * refused, a failed create is rolled back — were red-teamed on Host.File (docs/ownership.md). A\n * second resource that writes a whole file gets them by calling this, so a fix lands in both.\n * ★ THE BYTES ARE ASKED FOR ONLY WHEN A WRITE IS DUE (`bytesFor`). Host.File has them already; a\n * binary has only a pinned digest until it downloads, and a host whose file already matches\n * must not cost a 120 MB download to prove it.\n * ⛔ SYMLINKS AND DIRECTORIES ARE REFUSED, NOT REPLACED. rename(2) over a symlink replaces the LINK,\n * so a path that is a symlink (nix-darwin's /etc entries point into /nix/store) would be quietly\n * taken from the tool that owns it — which puts it back, or refuses its next activation. Remove\n * the path from its owner first, then declare it here.\n */\nimport type { Diff } from 'alchemy/Diff';\nimport { leaveOldPath, oneFile } from './file-identity.ts';\nimport type { HostFileAttributes } from './host-file-form.ts';\nimport { sha256Hex } from './job-form.ts';\nimport { type HostRunner, type WriteOptions, canActAsRoot } from './runner.ts';\n\n/** What a whole file must be: where, which bytes (by digest), which mode and owner. */\nexport type FileTarget = {\n readonly path: string;\n readonly sha256: string;\n readonly mode: number;\n readonly uid?: number;\n readonly gid?: number;\n};\n\n/** A family's refusal: `<Type> <path>: <message>`, so a deploy log names the resource that said no. */\nexport type Refuse = (path: string, message: string) => Error;\n\nconst numericId = (value: string | number): number | undefined =>\n typeof value === 'number' ? value : /^\\d+$/.test(value) ? Number(value) : undefined;\n\n/** Resolve a declared owner and group (names or ids) to ids through the runner. */\nexport const resolveIds = async (\n runner: HostRunner,\n declared: { readonly owner?: string | number; readonly group?: string | number },\n path: string,\n refuse: Refuse,\n): Promise<{ uid?: number; gid?: number }> => {\n let uid: number | undefined;\n let gid: number | undefined;\n if (declared.owner !== undefined) {\n uid = numericId(declared.owner) ?? (await runner.lookupUser(String(declared.owner)))?.uid;\n if (uid === undefined) throw refuse(path, `no user ${String(declared.owner)} on this host`);\n }\n if (declared.group !== undefined) {\n gid = numericId(declared.group) ?? (await runner.lookupGroup(String(declared.group)));\n if (gid === undefined) throw refuse(path, `no group ${String(declared.group)} on this host`);\n }\n return { ...(uid === undefined ? {} : { uid }), ...(gid === undefined ? {} : { gid }) };\n};\n\n/** The file as it is now, or `undefined` when nothing is at the path. Non-files read with no digest. */\nexport const readFileAttributes = async (\n runner: HostRunner,\n path: string,\n): Promise<HostFileAttributes | undefined> => {\n const stat = await runner.stat(path);\n if (stat === undefined) return undefined;\n const bytes = stat.kind === 'file' ? await runner.readFile(path) : undefined;\n return {\n gid: stat.gid,\n mode: stat.mode,\n path,\n sha256: bytes === undefined ? '' : sha256Hex(bytes),\n size: stat.size,\n uid: stat.uid,\n };\n};\n\nexport const writeOptionsOf = (want: FileTarget): WriteOptions => ({\n mode: want.mode,\n ...(want.uid === undefined ? {} : { uid: want.uid }),\n ...(want.gid === undefined ? {} : { gid: want.gid }),\n});\n\nexport const fileMatches = (live: HostFileAttributes, want: FileTarget): boolean =>\n live.sha256 === want.sha256 &&\n live.mode === want.mode &&\n (want.uid === undefined || live.uid === want.uid) &&\n (want.gid === undefined || live.gid === want.gid);\n\n/**\n * ★ A PLAN THAT WILL WRITE ASKS THE RUNNER FIRST (`checkWrite`, when it has one): sudoRunner's\n * refusals — a setuid or group-writable root file, a directory under a prefix another user may\n * change — then fail the plan, before any resource is applied, instead of halfway through it.\n */\nexport const diffTarget = async (\n runner: HostRunner,\n want: FileTarget,\n output: HostFileAttributes,\n): Promise<Diff> => {\n const writes = async (diff: Diff): Promise<Diff> => {\n await runner.checkWrite?.(want.path, writeOptionsOf(want));\n return diff;\n };\n // ★ Create-before-delete: two paths can hold two files at once, so nothing forces deleteFirst.\n // ⛔ …unless the two paths are ONE file (file-identity.ts). That is a respelling, not a move: a\n // replace would let Phase 2 delete the old generation's path, which is the new one's file. An\n // update records the new spelling, and convergeFile keeps the file.\n if (want.path !== output.path) {\n const same = await oneFile(runner, want.path, output.path);\n return writes({ action: same === true ? 'update' : 'replace' });\n }\n if (want.sha256 !== output.sha256) return writes({ action: 'update' });\n const live = await readFileAttributes(runner, want.path);\n return live !== undefined && fileMatches(live, want)\n ? { action: 'noop' }\n : writes({ action: 'update' });\n};\n\nexport type Converge = {\n readonly want: FileTarget;\n /** The owner as declared (a name or an id), for the chown refusal's wording. */\n readonly owner?: string | number | undefined;\n /** The bytes to write, asked for only when a write is due; `before` is what is there now. */\n readonly bytesFor: (before: HostFileAttributes | undefined) => Promise<Uint8Array>;\n readonly refuse: Refuse;\n};\n\n/**\n * Make the file at `want.path` match `want`, and return it as read back.\n *\n * `adopt` is whether adoption is on AND this apply is a create or an unfinished generation of our\n * own (ownership/adopt.ts adoptsAtApply). It lets such a generation take over a file already at the\n * path — the takeover the plan's probe would have allowed, had it run. ⛔ A move onto an occupied\n * path stays refused, both ways the engine drives one: an `update` across the move (`moved`,\n * below), and a fresh replace's new generation, which the caller never marks adoptable (its\n * `output` is undefined too, so this function cannot tell it from a create by itself).\n */\nexport const convergeFile = async (\n runner: HostRunner,\n spec: Converge,\n output?: HostFileAttributes,\n adopt = false,\n): Promise<HostFileAttributes> => {\n const { want, refuse } = spec;\n const path = want.path;\n // ⛔ NO SILENT SUDO: handing a file to another user is root's call (chown(2)), so say so up front.\n if (want.uid !== undefined && want.uid !== runner.effectiveUid() && !canActAsRoot(runner)) {\n throw refuse(\n path,\n `owner ${String(spec.owner)} is not the deploying user; only root may chown. Deploy as root ` +\n 'or through a privileged HostRunner (sudoRunner() with this path under a prefix). This ' +\n 'provider never calls sudo itself.',\n );\n }\n const stat = await runner.stat(path);\n if (stat !== undefined && stat.kind !== 'file') {\n throw refuse(\n path,\n `is a ${stat.kind}; remove it from whatever owns it before declaring it here`,\n );\n }\n const before = stat === undefined ? undefined : await readFileAttributes(runner, path);\n // ⚠️ An `output` at another path: the engine planned an UPDATE across a move, which it does\n // when diff could not see the new path (host-file.ts). Finish it the way a replace would.\n // ★ A respelling of ONE file (file-identity.ts) still counts as moved here, so a file there\n // that does not match is refused below — never rewritten in place under the old spelling's pins.\n const moved = output !== undefined && output.path !== path;\n const prior = moved ? undefined : output;\n /**\n * ⛔ A FILE THIS RESOURCE DOES NOT OWN IS NEVER OVERWRITTEN. With no prior state for this path,\n * the engine's adoption probe has already refused anything it found — except where it never\n * looked: the new path of a replace, and a create whose props still held an Output at plan\n * time. A path typo there would otherwise overwrite, say, a system file that a fresh\n * declaration of the same path would have been refused as `Unowned`. ★ With adoption on, a\n * create takes it over, as the probe would have let it (decided 2026-09-21).\n */\n const takeOver = adopt && output === undefined;\n if (prior === undefined && before !== undefined && !fileMatches(before, want) && !takeOver) {\n throw refuse(\n path,\n 'already exists and is not this resource. Remove it, or declare it as a new resource and ' +\n 'deploy with --adopt.',\n );\n }\n if (before === undefined || !fileMatches(before, want)) {\n const bytes = await spec.bytesFor(before);\n // ⛔ THE ONE WRITER NEVER WRITES BYTES THAT ARE NOT THE DECLARED ONES. Host.File's always are;\n // a supplier that verifies elsewhere (a download) is held to the same digest here, last.\n if (sha256Hex(bytes) !== want.sha256) {\n throw refuse(path, `the bytes to write do not hash to ${want.sha256}. Nothing was written.`);\n }\n await runner.writeFileAtomic(path, bytes, writeOptionsOf(want));\n }\n // ⚠️ READ BACK, never echo the declaration: a umask, an ACL or a runner that ignored `uid` shows\n // up here as a refusal instead of as a forever-`update`.\n // ⚠️ Roll back a CREATE: left behind, the next plan's recovery `read` finds a file with no state,\n // reports it `Unowned`, and every later deploy demands --adopt for our own file. ⛔ Also when\n // the read-back THROWS: MEASURED 2026-09-22, a 0111 binary written as a non-root operator read\n // back EACCES and stayed, and every later plan's probe failed with the same EACCES.\n const rollBack = async () => {\n if (before === undefined) await runner.removeFile(path).catch(() => undefined);\n };\n const after = await readFileAttributes(runner, path).catch(async (cause: unknown) => {\n await rollBack();\n throw refuse(path, `the write returned but reading it back failed: ${String(cause)}`);\n });\n if (after === undefined || !fileMatches(after, want)) {\n await rollBack();\n throw refuse(path, 'the write returned but the file on disk does not match the declaration');\n }\n // ★ Create-before-delete, as the replace would have been: the old path goes only once the new\n // one is written and verified — and ⛔ never when the old path IS this file (file-identity.ts).\n if (moved)\n await leaveOldPath(\n runner,\n output.path,\n path,\n () => removeWholeFile(runner, output, refuse),\n refuse,\n );\n return after;\n};\n\n/** Remove the file. Idempotent. ⛔ Refuses a path that has since become a symlink or directory. */\nexport const removeWholeFile = async (\n runner: HostRunner,\n output: HostFileAttributes,\n refuse: Refuse,\n): Promise<void> => {\n const stat = await runner.stat(output.path);\n if (stat === undefined) return;\n if (stat.kind !== 'file') throw refuse(output.path, `is now a ${stat.kind}; not removing it`);\n await runner.removeFile(output.path);\n};\n",
35
35
  "/**\n * HostFile's props, attributes and validation — the pure half of the provider.\n *\n * ⛔ `content` IS NEVER A SECRET. Alchemy stores props unencrypted, so the content of every HostFile\n * sits in the state store and in every plan diff. A secret file stays RENDERED BY A SECRET\n * RENDERER (openbao-agent templates, on this estate) that fetches it at run time; the stack\n * declares only non-secret config, and at most the PATH the renderer writes to.\n * secret-tripwire.ts refuses the obvious case (a PEM private key); nothing can catch all of them.\n */\nimport { fileSecretProblems } from './secret-tripwire.ts';\n\nexport interface HostFileProps {\n /** Absolute path. The parent directory must already exist. */\n path: string;\n /** UTF-8 text. ⛔ Never a secret — see the file header. */\n content: string;\n /** Permission bits. @default 0o644 */\n mode?: number;\n /** User name or numeric uid. Omitted: whoever the runner writes as (a rewrite keeps no owner). */\n owner?: string | number;\n /** Group name or numeric gid. Omitted: the directory's default group. */\n group?: string | number;\n}\n\nexport interface HostFileAttributes {\n path: string;\n /** SHA-256 of the bytes on disk. */\n sha256: string;\n mode: number;\n uid: number;\n gid: number;\n size: number;\n}\n\nexport const DEFAULT_MODE = 0o644;\n\n/** A user or group as declared: a non-negative id, or a name the host could have. */\nexport const identityProblems = (name: string, value: string | number | undefined): string[] => {\n if (value === undefined) return [];\n if (typeof value === 'number') {\n return Number.isSafeInteger(value) && value >= 0\n ? []\n : [`${name} must be a non-negative integer id`];\n }\n return /^[A-Za-z_][A-Za-z0-9_.-]*$/.test(value) || /^\\d+$/.test(value)\n ? []\n : [`${name} ${JSON.stringify(value)} is not a valid user or group name`];\n};\n\n/**\n * An absolute, normalised path, or the reasons it is not. ★ Shared with sudo-allowlist.ts, so a\n * path the sudo runner may touch as root obeys exactly the rule a declared file does.\n */\nexport const pathProblems = (path: string): string[] => {\n const found: string[] = [];\n if (!path.startsWith('/')) found.push('path must be absolute');\n // ★ One spelling per file: `a/./b`, `a//b` and `a/../b` would each be a second resource for the\n // same inode, and `..` is how a derived path walks out of the directory it was meant for.\n if (\n path.endsWith('/') ||\n path\n .split('/')\n .slice(1)\n .some((part) => part === '' || part === '.' || part === '..')\n ) {\n found.push('path must be normalised (no trailing slash, no empty, \".\" or \"..\" segments)');\n }\n if (path.includes('\\x00')) found.push('path contains NUL');\n return found;\n};\n\nexport const fileProblems = (props: HostFileProps): string[] => {\n const found = pathProblems(props.path);\n const mode = props.mode ?? DEFAULT_MODE;\n if (!Number.isSafeInteger(mode) || mode < 0 || mode > 0o7777) found.push('mode must be 0–0o7777');\n found.push(...identityProblems('owner', props.owner));\n found.push(...identityProblems('group', props.group));\n found.push(...fileSecretProblems(props.content));\n return found;\n};\n",
36
36
  "/**\n * HostFile's read / diff / reconcile / delete as plain async functions over a HostRunner, so the\n * lifecycle runs against fake-runner.ts in tests.\n *\n * ★ THE CONVERGENCE ITSELF IS file-converge.ts, shared with every resource that owns one whole file\n * (Release.Binary is the second). What stays here is what makes a HOST FILE: text content, its\n * validation (never a secret — host-file-form.ts), and the refusal wording `Host.File <path>: …`.\n * ⛔ SYMLINKS AND DIRECTORIES ARE REFUSED, NOT REPLACED — see file-converge.ts for why.\n */\nimport type { Diff } from 'alchemy/Diff';\nimport {\n type FileTarget,\n convergeFile,\n diffTarget,\n removeWholeFile,\n resolveIds,\n} from './file-converge.ts';\nimport {\n DEFAULT_MODE,\n type HostFileAttributes,\n type HostFileProps,\n fileProblems,\n} from './host-file-form.ts';\nimport { sha256Hex } from './job-form.ts';\nimport type { HostRunner } from './runner.ts';\n\nexport { readFileAttributes } from './file-converge.ts';\n\ntype Desired = FileTarget & { readonly bytes: Uint8Array };\n\nconst refuse = (path: string, message: string): Error => new Error(`Host.File ${path}: ${message}`);\n\n/** Validate, then resolve owner/group names to ids through the runner. */\nexport const desiredFile = async (runner: HostRunner, props: HostFileProps): Promise<Desired> => {\n const found = fileProblems(props);\n if (found.length > 0) throw refuse(props.path, found.join('; '));\n const bytes = new TextEncoder().encode(props.content);\n return {\n bytes,\n mode: props.mode ?? DEFAULT_MODE,\n path: props.path,\n sha256: sha256Hex(bytes),\n ...(await resolveIds(runner, props, props.path, refuse)),\n };\n};\n\n/** Declared digest, mode and owner against state and the live file — see diffTarget. */\nexport const diffFile = async (\n runner: HostRunner,\n news: HostFileProps,\n output: HostFileAttributes,\n): Promise<Diff> => diffTarget(runner, await desiredFile(runner, news), output);\n\n/**\n * Write the declared text, unless the file already matches. `adopt` is adoptsAtApply's answer;\n * what it may and may not take over is convergeFile's ⛔.\n */\nexport const reconcileFile = async (\n runner: HostRunner,\n props: HostFileProps,\n output?: HostFileAttributes,\n adopt = false,\n): Promise<HostFileAttributes> => {\n const want = await desiredFile(runner, props);\n const spec = { bytesFor: async () => want.bytes, owner: props.owner, refuse, want };\n return convergeFile(runner, spec, output, adopt);\n};\n\n/** Remove the file. Idempotent. ⛔ Refuses a path that has since become a symlink or directory. */\nexport const deleteFile = (runner: HostRunner, output: HostFileAttributes): Promise<void> =>\n removeWholeFile(runner, output, refuse);\n"
37
37
  ],
38
- "mappings": "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",
38
+ "mappings": "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",
39
39
  "debugId": "B368F4E9D50791DC64756E2164756E21",
40
40
  "names": []
41
41
  }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * `Ceph.AuthEntity` (K-A4) — a Ceph client auth entity (`client.k8s-*`), minted over the ssh
3
+ * mon-command transport and stored only in OpenBao. Design: docs/plans/2026-09-26-ceph-mon-
4
+ * transport.md, "`Ceph.AuthEntity` (K-A4)"; the loop itself lives in ceph-auth-reconcile.ts, the
5
+ * transport in ceph-transport.ts, the allowlist in ceph-argv.ts.
6
+ *
7
+ * ⛔ `read` AND `diff` NEVER SSH. "A plan never elevates" (../linux/sudo-runner.ts's own header
8
+ * makes the same rule for the file family): this family's props/state comparison is the whole
9
+ * of `diff`, and `read` hands back exactly the attributes state already holds. Live drift is
10
+ * caught only at `reconcile` (which does elevate, on the admin lane) and by the post-deploy
11
+ * operator check — this family cannot prove live convergence at plan time, and says so rather
12
+ * than pretending an unprivileged probe exists where none does.
13
+ * ⛔ `delete` IS REFUSED UNCONDITIONALLY. `defaultRemovalPolicy: 'retain'` keeps Alchemy from ever
14
+ * calling it on an ordinary `destroy`, and the handler itself refuses too — belt and suspenders
15
+ * with ceph-argv.ts's own refusal of the `auth del` shape, so there is no path, `--adopt` or a
16
+ * resource-level removal-policy override included, that ever reaches it (D3).
17
+ * ⛔ NEVER ADOPTED. See ceph-auth-reconcile.ts's header for why the generic `refuseTakeover` is not
18
+ * used here.
19
+ * ⛔ ROWS ARE CREATES THROUGH THE FIRST-CREATE GATE, NO `adopt()` — `list` answers empty, the same
20
+ * as every Ceph family in this kit (ceph-pool.ts's header has the reason a non-empty list would
21
+ * invite exactly the takeover this family refuses).
22
+ */
23
+ import { Resource } from 'alchemy';
24
+ import * as Provider from 'alchemy/Provider';
25
+ import type * as HttpClient from 'effect/unstable/http/HttpClient';
26
+ import type { CephAuthEntityAttributes, CephAuthEntityProps } from './ceph-auth-form.ts';
27
+ export type { CephAuthEntityAttributes, CephAuthEntityProps } from './ceph-auth-form.ts';
28
+ export type { CephCaps } from './ceph-auth-parse.ts';
29
+ export interface CephAuthEntity extends Resource<'Ceph.AuthEntity', CephAuthEntityProps, CephAuthEntityAttributes, never, HttpClient.HttpClient> {
30
+ }
31
+ /** ★ `retain` — the delete handler below refuses regardless, but this stops Alchemy calling it. */
32
+ export declare const CephAuthEntity: import("alchemy").ResourceClass<CephAuthEntity>;
33
+ export declare const CephAuthEntityProvider: () => import("effect/Layer").Layer<Provider.Provider<CephAuthEntity>, never, HttpClient.HttpClient>;
34
+ //# sourceMappingURL=auth-entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-entity.d.ts","sourceRoot":"","sources":["../../src/ceph/auth-entity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAIzF,YAAY,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzF,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,cAAe,SAAQ,QAAQ,CAC9C,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,EACL,UAAU,CAAC,UAAU,CACtB;CAAG;AAEJ,mGAAmG;AACnG,eAAO,MAAM,cAAc,iDAEzB,CAAC;AASH,eAAO,MAAM,sBAAsB,qGAmBhC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `undefined` when `value` is a safe ceph config value — exported (like `boundedEntityProblem`)
3
+ * so the shape itself is directly testable, since `NAMED_CONFIG_OPTIONS` being empty today means
4
+ * `cephCommandProblem` never reaches this check on any real argv (`namedOptionProblem` refuses
5
+ * first) — this stays exercised until K-D's first named option arms the path for real.
6
+ */
7
+ export declare const configValueProblem: (value: string) => string | undefined;
8
+ /** `config get|set|rm <who> <name> [value]`, called with the operands after `config` stripped. */
9
+ export declare const configProblem: (rest: readonly string[]) => string | undefined;
10
+ //# sourceMappingURL=ceph-argv-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ceph-argv-config.d.ts","sourceRoot":"","sources":["../../src/ceph/ceph-argv-config.ts"],"names":[],"mappings":"AAiCA;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,UAAW,MAAM,KAAG,MAAM,GAAG,SAG0B,CAAC;AAevF,kGAAkG;AAClG,eAAO,MAAM,aAAa,SAAU,SAAS,MAAM,EAAE,KAAG,MAAM,GAAG,SAmBhE,CAAC"}
@@ -0,0 +1,19 @@
1
+ export { configValueProblem } from './ceph-argv-config.ts';
2
+ /** ★ Absolute, so neither sudo nor `ceph` is looked up on the operator's PATH. */
3
+ export declare const CEPH_BIN = "/usr/bin/ceph";
4
+ /** Every entity this transport may ever touch starts with this. */
5
+ export declare const ENTITY_PREFIX = "client.k8s-";
6
+ /** `undefined` when `entity` is a name this transport may ever create, get or re-cap. */
7
+ export declare const boundedEntityProblem: (entity: string) => string | undefined;
8
+ declare const DAEMONS: readonly ['mon', 'osd', 'mgr'];
9
+ /**
10
+ * `undefined` when `argv` is exactly an allowed ceph shape (the FULL argv `sudo -n` would run,
11
+ * `/usr/bin/ceph` included), else the reason it is not.
12
+ */
13
+ export declare const cephCommandProblem: (argv: readonly string[]) => string | undefined;
14
+ /** The exact argv for each allowed shape, so callers never hand-assemble one that could drift. */
15
+ export declare const authGetArgv: (entity: string) => readonly string[];
16
+ export declare const authGetOrCreateArgv: (entity: string, caps: Readonly<Record<(typeof DAEMONS)[number], string>>) => readonly string[];
17
+ export declare const authCapsArgv: (entity: string, caps: Readonly<Record<(typeof DAEMONS)[number], string>>) => readonly string[];
18
+ export declare const quorumStatusArgv: () => readonly string[];
19
+ //# sourceMappingURL=ceph-argv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ceph-argv.d.ts","sourceRoot":"","sources":["../../src/ceph/ceph-argv.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,kFAAkF;AAClF,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AAExC,mEAAmE;AACnE,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAK3C,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,WAAY,MAAM,KAAG,MAAM,GAAG,SAGiD,CAAC;AAejH,QAAA,MAAM,OAAO,YAAI,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AA6E/C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,SAAU,SAAS,MAAM,EAAE,KAAG,MAAM,GAAG,SAWrE,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,WAAW,WAAY,MAAM,KAAG,SAAS,MAAM,EAM3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,WACtB,MAAM,QACR,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,KACvD,SAAS,MAAM,EAOjB,CAAC;AAEF,eAAO,MAAM,YAAY,WACf,MAAM,QACR,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,KACvD,SAAS,MAAM,EAOjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,SAAS,MAAM,EAIlD,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { CephCaps } from './ceph-auth-parse.ts';
2
+ export type { CephCaps };
3
+ export type CephAuthEntityProps = {
4
+ /** `client.k8s-<name>` — bounded by ceph-argv.ts's allowlist, checked on every transport call. */
5
+ readonly entity: string;
6
+ readonly caps: CephCaps;
7
+ /** TB4 mon ssh destinations, tried in this order (D1). At least one. */
8
+ readonly nodes: readonly string[];
9
+ /** OpenBao KV-v2 mount holding Talos/Ceph material, e.g. `talos-c1` (D2). */
10
+ readonly mount: string;
11
+ };
12
+ export type CephAuthEntityAttributes = {
13
+ readonly entity: string;
14
+ readonly caps: CephCaps;
15
+ /** `sha256(key)`, hex — never the key itself. */
16
+ readonly fingerprint: string;
17
+ /** CLI-style path (`<mount>/ceph/<entity>`) — safe to persist and log; the key is not here. */
18
+ readonly baoPath: string;
19
+ /** Which mon actually answered the write that produced this row. Never key material. */
20
+ readonly node: string;
21
+ };
22
+ export declare const capsEqual: (a: CephCaps, b: CephCaps) => boolean;
23
+ /** The CLI-style path an operator's `bao kv get` would use — what `baoPath` records. */
24
+ export declare const cephCliPath: (mount: string, entity: string) => string;
25
+ /**
26
+ * The raw KV-v2 HTTP API path `../openbao/bao-http.ts`'s `baoRead`/`baoWrite` take — the CLI path
27
+ * with `data/` inserted, the same segment `bao kv get`/`bao kv put` insert themselves
28
+ * (`../talos/credentials.ts`'s header has the shipped-default bug this convention avoids: never
29
+ * include `data/` in the CLI-style path itself, only here).
30
+ */
31
+ export declare const cephDataPath: (mount: string, entity: string) => string;
32
+ export type CephAuthEntityPlan = {
33
+ readonly action: 'noop' | 'update' | 'replace';
34
+ };
35
+ /**
36
+ * Whether `output` (if any) names a different entity/mount than `news` declares — the one
37
+ * question both `planCephAuthEntity` and `reconcileCephAuthEntity`'s guard ask, so the comparison
38
+ * lives in exactly one place (rename-identity.ts's own header: "one description of which object,
39
+ * not twelve copies of the check").
40
+ */
41
+ export declare const identityMoved: (news: Pick<CephAuthEntityProps, 'entity' | 'mount'>, output: CephAuthEntityAttributes | undefined) => boolean;
42
+ /**
43
+ * ⛔ STATE ONLY, NO SSH — the design's own rule for this family ("a plan never elevates"; diff and
44
+ * verify compare props against state, never the live cluster). `output === undefined` returns
45
+ * `undefined`: a brand-new row plans as a create the same way every other family in this kit
46
+ * does, and reconcile is where the actual ssh work — and the key material — ever appears.
47
+ * A moved identity plans `replace` before caps are even considered: `defaultRemovalPolicy:
48
+ * 'retain'` means the old generation is simply left alone (Apply.ts skips its delete under
49
+ * retain), and the new generation reconciles with `output: undefined`, which is exactly the
50
+ * "never adopted" path if the new identity already has a live entity.
51
+ */
52
+ export declare const planCephAuthEntity: (news: CephAuthEntityProps, output: CephAuthEntityAttributes | undefined) => CephAuthEntityPlan | undefined;
53
+ export declare const attributesOf: (props: Pick<CephAuthEntityProps, 'caps' | 'entity' | 'mount'>, fingerprint: string, node: string) => CephAuthEntityAttributes;
54
+ //# sourceMappingURL=ceph-auth-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ceph-auth-form.d.ts","sourceRoot":"","sources":["../../src/ceph/ceph-auth-form.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,MAAM,MAAM,mBAAmB,GAAG;IAChC,kGAAkG;IAClG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,iDAAiD;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,SAAS,MAAO,QAAQ,KAAK,QAAQ,KAAG,OACE,CAAC;AAExD,wFAAwF;AACxF,eAAO,MAAM,WAAW,UAAW,MAAM,UAAU,MAAM,KAAG,MACZ,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,UAAW,MAAM,UAAU,MAAM,KAAG,MACR,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,CAAC;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,SAClB,IAAI,CAAC,mBAAmB,EAAE,QAAQ,GAAG,OAAO,CAAC,UAC3C,wBAAwB,GAAG,SAAS,KAC3C,OAEyF,CAAC;AAE7F;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,SACvB,mBAAmB,UACjB,wBAAwB,GAAG,SAAS,KAC3C,kBAAkB,GAAG,SAIvB,CAAC;AAEF,eAAO,MAAM,YAAY,UAChB,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,eAChD,MAAM,QACb,MAAM,KACX,wBAMD,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Parsing for the three ceph `-f json` shapes `Ceph.AuthEntity` reads: `auth get`, `auth
3
+ * get-or-create` and `quorum_status`. Pure: no I/O, tested with fixture stdout
4
+ * (ceph-auth-parse.test.ts) — there is no live mon to capture real output from yet, so every shape
5
+ * below is REASONED from public Ceph documentation, not measured, and an unexpected shape is
6
+ * always an error, never a guess.
7
+ *
8
+ * ⛔ `parseAuthGet`'S RETURN TYPE HAS NO `key` FIELD. Decision 65 (2026-09-26, LAND finding 5)
9
+ * amended the design to let the observe step read `auth get`'s unfiltered stdout on every
10
+ * reconcile, not only on create — but the key it carries is dropped in the same breath:
11
+ * `parseKeyringEntry` reads it into a local binding and `parseAuthGet` never puts it in the
12
+ * object it returns. Not a convention, a type: there is no field here to forget to strip.
13
+ * ⛔ `parseQuorumStatus` FAILS CLOSED. A JSON parse error, a missing `quorum` array or an empty one
14
+ * all answer `{ healthy: false }`; nothing here ever calls an unparseable answer healthy.
15
+ */
16
+ export type CephCaps = {
17
+ readonly mon: string;
18
+ readonly osd: string;
19
+ readonly mgr: string;
20
+ };
21
+ export type CephExecOutcome = {
22
+ readonly exitCode: number;
23
+ readonly stdout: string;
24
+ readonly stderr: string;
25
+ };
26
+ export type CephAuthObserved = {
27
+ readonly kind: 'present';
28
+ readonly caps: CephCaps;
29
+ } | {
30
+ readonly kind: 'absent';
31
+ };
32
+ /**
33
+ * ⚠️ ABSENCE IS RECOGNISED ONLY BY `ENOENT` IN STDERR (REASONED from `ceph auth get`'s documented
34
+ * error text). Any other nonzero exit — a permission problem, a malformed entity ceph itself
35
+ * refused, a mon mid-election — propagates as an error, never as "absent": the transient-read
36
+ * test every family in this kit carries.
37
+ */
38
+ export declare const parseAuthGet: (result: CephExecOutcome, entity: string) => CephAuthObserved;
39
+ /**
40
+ * ⚠️ `get-or-create` NEVER READS AS ABSENT — REASONED: it either creates, returns the existing
41
+ * entity unchanged, or fails outright (e.g. an existing entity with different caps). A nonzero
42
+ * exit here is always an error.
43
+ */
44
+ export declare const parseAuthGetOrCreate: (result: CephExecOutcome, entity: string) => {
45
+ readonly caps: CephCaps;
46
+ readonly key: string;
47
+ };
48
+ export type CephQuorum = {
49
+ readonly healthy: true;
50
+ } | {
51
+ readonly healthy: false;
52
+ readonly reason: string;
53
+ };
54
+ /** REASONED shape (public `ceph quorum_status -f json` docs): an object with a `quorum` array. */
55
+ export declare const parseQuorumStatus: (stdout: string) => CephQuorum;
56
+ //# sourceMappingURL=ceph-auth-parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ceph-auth-parse.d.ts","sourceRoot":"","sources":["../../src/ceph/ceph-auth-parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5F,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AA6CF,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEhC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,WAAY,eAAe,UAAU,MAAM,KAAG,gBAOtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,WACvB,eAAe,UACf,MAAM,KACb;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAOjD,CAAC;AAEF,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,WAAY,MAAM,KAAG,UAYlD,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The observe -> ensure -> sync loop `Ceph.AuthEntity`'s reconcile runs (mon-transport doc,
3
+ * `Ceph.AuthEntity`). Split from auth-entity.ts so the loop itself — the part a fake-runner test
4
+ * actually exercises — is a plain function, the same split ceph-pool.ts and ssh-role.ts use.
5
+ *
6
+ * ⛔ NEVER ADOPTS. A live entity found present while this stack holds no attributes for it is
7
+ * refused outright, `--adopt` included — the generic `refuseTakeover` (../ownership/adopt.ts)
8
+ * is deliberately NOT used here, because it honours `--adopt` and this family's own design says
9
+ * plainly: "Existing auth entities are recorded as observed inventory only — never adopted:
10
+ * adopting one would mean reading and fingerprinting its key, and a key is only ever handled for
11
+ * an entity this stack owns."
12
+ * ⛔ THE OBSERVE STEP READS `auth get`'S UNFILTERED STDOUT ON EVERY RECONCILE (decision 65,
13
+ * 2026-09-26, amending the design after LAND finding 5 — no node-side filter narrows it first).
14
+ * The key that stdout carries is dropped in the same breath: `parseAuthGet` has no `key` field in
15
+ * its return type at all, so there is no variable here ever holding it past that call. Only `auth
16
+ * get-or-create`, run once on the create branch, yields a `key` value, and it goes straight to
17
+ * OpenBao — never assigned to a variable this function returns, logs, or puts in the attributes
18
+ * it hands back — `attributesOf` takes a fingerprint, never a key.
19
+ * ★ CAPS DRIFT NEVER RE-MINTS THE KEY. `auth caps` changes only what an entity may do; the returned
20
+ * attributes reuse `output.fingerprint` unchanged.
21
+ * ⛔ A MOVED IDENTITY IS REFUSED HERE TOO, BELT AND SUSPENDERS WITH `planCephAuthEntity`'s
22
+ * `replace`. `isResolved(news)` in auth-entity.ts's `diff` can defer to the engine's own
23
+ * `update` fallback while any prop is still an Output (rename.ts's own header documents this
24
+ * exact Alchemy behaviour for every other family this pattern protects) — a case in which
25
+ * `planCephAuthEntity` never even runs. Reached with `output` naming a different entity/mount
26
+ * than `props`, this refuses before any ssh call, the same shape of guard `guardRename`
27
+ * (openbao/rename-identity.ts) runs first in every `Bao.*` reconcile.
28
+ */
29
+ import * as Effect from 'effect/Effect';
30
+ import type * as HttpClient from 'effect/unstable/http/HttpClient';
31
+ import { type CephAuthEntityAttributes, type CephAuthEntityProps } from './ceph-auth-form.ts';
32
+ import { type CephTransportOptions } from './ceph-transport.ts';
33
+ export type CephAuthDeps = Pick<CephTransportOptions, 'dial' | 'log'>;
34
+ export declare const reconcileCephAuthEntity: (props: CephAuthEntityProps, output: CephAuthEntityAttributes | undefined, deps: CephAuthDeps) => Effect.Effect<CephAuthEntityAttributes, Error, HttpClient.HttpClient>;
35
+ //# sourceMappingURL=ceph-auth-reconcile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ceph-auth-reconcile.d.ts","sourceRoot":"","sources":["../../src/ceph/ceph-auth-reconcile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAKnE,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EAKzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,oBAAoB,EAAqC,MAAM,qBAAqB,CAAC;AAEnG,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;AA2BtE,eAAO,MAAM,uBAAuB,UAC3B,mBAAmB,UAClB,wBAAwB,GAAG,SAAS,QACtC,YAAY,KACjB,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CA2CnE,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The named Ceph config-option list — the only options `ceph config get/set/rm` may ever touch
3
+ * through the mon-command transport (ceph-argv.ts's `configProblem`). Design:
4
+ * docs/plans/2026-09-26-ceph-config-options.md, D-C1.
5
+ *
6
+ * ⛔ THE LIST STARTS EMPTY, AND EACH ADDITION IS ITS OWN REVIEWED PR LINE. Nothing in K-A4 adds to
7
+ * it — `CephConfigOption` (K-D) is a separate, later family; this file exists now only so the
8
+ * transport's allowlist has something to bound `config` against from day one, per the accepted
9
+ * design ("config get/set for the named option list which starts EMPTY").
10
+ * ⛔ NEVER ADD ONE OF THE LOCKOUT CLASSES BELOW. `mon_host`, `public_network`, `cluster_network`,
11
+ * `public_addr`, `cluster_addr`, every `auth_*_required` and every `key`/`keyring`-bearing
12
+ * option re-address the mons or de-authenticate the whole cluster — cutting every VM disk — and
13
+ * `isLockoutConfigOption` is a structural guard a test runs against this file's own list, not a
14
+ * suggestion for the reviewer of the next PR line.
15
+ * ⛔ NEVER ADD A SECRET-VALUED OPTION. mgr module options can hold passwords (REASONED — no live
16
+ * cluster to measure this against yet); a secret-bearing setting belongs in a vault-backed flow,
17
+ * never a `ceph config set` argv, which lands in the runner's log and the node's sudo journal.
18
+ */
19
+ /** Starts empty. Add one reviewed option name per PR line, never a batch. */
20
+ export declare const NAMED_CONFIG_OPTIONS: ReadonlySet<string>;
21
+ /** Whether `name` is a class this transport must never read a value for, adopt, or write. */
22
+ export declare const isLockoutConfigOption: (name: string) => boolean;
23
+ //# sourceMappingURL=ceph-config-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ceph-config-options.d.ts","sourceRoot":"","sources":["../../src/ceph/ceph-config-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAe,CAAC;AAarE,6FAA6F;AAC7F,eAAO,MAAM,qBAAqB,SAAU,MAAM,KAAG,OACE,CAAC"}