@homeflare/alchemy 0.37.6 → 0.37.7
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.
- package/dist/proxmox/firewall-alias-config.d.ts +36 -0
- package/dist/proxmox/firewall-alias-config.d.ts.map +1 -0
- package/dist/proxmox/firewall-alias-form.d.ts +3 -1
- package/dist/proxmox/firewall-alias-form.d.ts.map +1 -1
- package/dist/proxmox/firewall-alias-lifecycle.d.ts +43 -0
- package/dist/proxmox/firewall-alias-lifecycle.d.ts.map +1 -0
- package/dist/proxmox/firewall-alias.d.ts +2 -8
- package/dist/proxmox/firewall-alias.d.ts.map +1 -1
- package/dist/proxmox/index.js +795 -526
- package/dist/proxmox/index.js.map +23 -10
- package/dist/proxmox/lxc-errors.d.ts +12 -0
- package/dist/proxmox/lxc-errors.d.ts.map +1 -0
- package/dist/proxmox/lxc-lifecycle.d.ts +9 -31
- package/dist/proxmox/lxc-lifecycle.d.ts.map +1 -1
- package/dist/proxmox/lxc-read.d.ts +4 -0
- package/dist/proxmox/lxc-read.d.ts.map +1 -0
- package/dist/proxmox/lxc-task.d.ts +15 -0
- package/dist/proxmox/lxc-task.d.ts.map +1 -0
- package/dist/proxmox/network-apply-read.d.ts +7 -14
- package/dist/proxmox/network-apply-read.d.ts.map +1 -1
- package/dist/proxmox/network-apply-run.d.ts +7 -0
- package/dist/proxmox/network-apply-run.d.ts.map +1 -0
- package/dist/proxmox/network-apply.d.ts +2 -3
- package/dist/proxmox/network-apply.d.ts.map +1 -1
- package/dist/proxmox/qemu-errors.d.ts +5 -0
- package/dist/proxmox/qemu-errors.d.ts.map +1 -0
- package/dist/proxmox/qemu-form.d.ts +22 -0
- package/dist/proxmox/qemu-form.d.ts.map +1 -0
- package/dist/proxmox/qemu-lifecycle.d.ts +26 -0
- package/dist/proxmox/qemu-lifecycle.d.ts.map +1 -0
- package/dist/proxmox/qemu-read.d.ts +5 -0
- package/dist/proxmox/qemu-read.d.ts.map +1 -0
- package/dist/proxmox/qemu-task.d.ts +9 -0
- package/dist/proxmox/qemu-task.d.ts.map +1 -0
- package/dist/proxmox/qemu.d.ts +9 -14
- package/dist/proxmox/qemu.d.ts.map +1 -1
- package/dist/proxmox/replication-firewall-fixtures.d.ts +30 -0
- package/dist/proxmox/replication-firewall-fixtures.d.ts.map +1 -0
- package/dist/proxmox/replication-job-config.d.ts +56 -0
- package/dist/proxmox/replication-job-config.d.ts.map +1 -0
- package/dist/proxmox/replication-job-lifecycle.d.ts +62 -0
- package/dist/proxmox/replication-job-lifecycle.d.ts.map +1 -0
- package/dist/proxmox/replication-job.d.ts +5 -6
- package/dist/proxmox/replication-job.d.ts.map +1 -1
- package/dist/release/archive.d.ts.map +1 -1
- package/dist/release/index.js +3 -2
- package/dist/release/index.js.map +3 -3
- package/docs/proxmox-lxc-distilled.md +56 -0
- package/docs/proxmox-replication-firewall-distilled.md +53 -0
- package/docs/proxmox-sdk-migration.md +23 -18
- package/package.json +2 -2
- package/src/proxmox/firewall-alias-config.ts +39 -0
- package/src/proxmox/firewall-alias-form.ts +1 -1
- package/src/proxmox/firewall-alias-lifecycle.ts +100 -0
- package/src/proxmox/firewall-alias.ts +4 -67
- package/src/proxmox/lxc-create.test.ts +4 -1
- package/src/proxmox/lxc-distilled.test.ts +239 -0
- package/src/proxmox/lxc-errors.ts +9 -0
- package/src/proxmox/lxc-lifecycle.ts +31 -113
- package/src/proxmox/lxc-read.test.ts +29 -6
- package/src/proxmox/lxc-read.ts +88 -0
- package/src/proxmox/lxc-task.ts +71 -0
- package/src/proxmox/network-apply-distilled.test.ts +76 -0
- package/src/proxmox/network-apply-read.ts +18 -39
- package/src/proxmox/network-apply-run.ts +97 -0
- package/src/proxmox/network-apply.ts +5 -94
- package/src/proxmox/qemu-errors.ts +7 -0
- package/src/proxmox/qemu-form.ts +15 -0
- package/src/proxmox/qemu-lifecycle.test.ts +171 -0
- package/src/proxmox/qemu-lifecycle.ts +134 -0
- package/src/proxmox/qemu-read.ts +73 -0
- package/src/proxmox/qemu-task.ts +64 -0
- package/src/proxmox/qemu.ts +11 -44
- package/src/proxmox/replication-firewall-fixtures.ts +71 -0
- package/src/proxmox/replication-firewall-lifecycle.test.ts +109 -0
- package/src/proxmox/replication-firewall-wire.test.ts +173 -0
- package/src/proxmox/replication-job-config.ts +79 -0
- package/src/proxmox/replication-job-lifecycle.ts +113 -0
- package/src/proxmox/replication-job.ts +7 -84
- package/src/release/archive.ts +4 -1
package/dist/release/index.js
CHANGED
|
@@ -931,7 +931,8 @@ var extractMembers = async (gzipped, wanted, root) => {
|
|
|
931
931
|
offset += SLICE;
|
|
932
932
|
}
|
|
933
933
|
});
|
|
934
|
-
const
|
|
934
|
+
const gunzip = new DecompressionStream("gzip");
|
|
935
|
+
const unzipped = source.pipeThrough(gunzip).getReader();
|
|
935
936
|
try {
|
|
936
937
|
for (;; ) {
|
|
937
938
|
const { done, value } = await unzipped.read();
|
|
@@ -1471,5 +1472,5 @@ export {
|
|
|
1471
1472
|
releaseUrl
|
|
1472
1473
|
};
|
|
1473
1474
|
|
|
1474
|
-
//# debugId=
|
|
1475
|
+
//# debugId=6B19B9957CE8671964756E2164756E21
|
|
1475
1476
|
//# sourceMappingURL=index.js.map
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"/**\n * What a Release.Binary may take over at a path it holds no state for: ONLY the pinned binary, and\n * only under `--adopt`. Asked the same way at plan (binary-diff.ts) and at apply\n * (binary-lifecycle.ts), so a plan never says `adopted` or `create` for a file the apply would then\n * overwrite or silently claim.\n *\n * ⛔ OTHER BYTES ARE NEVER ADOPTED, `--adopt` OR NOT. 🔴 MEASURED 2026-09-22 (adopt-parity.test.ts,\n * through Alchemy's own Plan and Apply): under `--adopt`, a file with other bytes at the path\n * planned as `adopted` — beta.79 forces an `adopted` update after every takeover and prints it for\n * drift too — and the apply downloaded the archive and overwrote that file in place. With the\n * directory an Output (the probe skipped) the same file planned as `create`, and was overwritten.\n * ★ Refused rather than converged, which is what Host.File does with a file it adopts: a binary's\n * content is named entirely by its pin, so \"adopting\" other bytes is replacing them under\n * whatever runs them, with no rollback but a re-download — the very overwrite binary-form.ts\n * inPlaceRefusal refuses for a re-pin. The pinned bytes with another mode or owner ARE adopted;\n * the apply re-writes the bytes already on disk.\n * ⛔ THE PINNED BYTES WITH NO STATE ARE NOT OURS WITHOUT `--adopt` — AT APPLY AS AT PLAN. The probe\n * already says `Unowned` for them (docs/ownership.md: identical is not ours). file-converge.ts\n * accepts them at apply as the resume of an interrupted install, and that gap is where the probe\n * never runs: every first deploy that passes `directory: dir.path`. 🔴 MEASURED 2026-09-22: a\n * declaration renamed (a new logical id, the same path) in a deploy that also changed its\n * HostDirectory's mode claimed the identical file at apply without `--adopt`; the orphan delete of\n * the old name then removed it, and the deploy reported success with the binary gone. With the\n * directory unchanged, the probe refused that same rename.\n * ⚠️ THE COST: an install interrupted between its write and its commit while a prop was an\n * Output now resumes only with `--adopt` — as the same install with every prop resolved already\n * did (its recovery read is `Unowned`), and as ownership.md says a create or replace interrupted\n * while a prop was an Output does. A retained old version is not re-claimed by a rollback either.\n * ★ `renamedFrom()` IS THE REMEDY FOR A RENAME: `.pipe(renamedFrom('old-id'))` migrates the row\n * and keeps the file (adopt-parity.test.ts). 🔴 MEASURED 2026-09-22: the same rename under\n * `--adopt` claimed the file, the old name's delete then removed it, and the deploy succeeded\n * with the binary gone. binary.ts's delete now leaves a path another declaration installed in\n * the same deploy, so that is kept too — as an adoption, not as the old row. ⚠️ That guard sees\n * only this deploy's claims, by spelling; nothing here sees another row's claim in state.\n * ★ HOW DIFF TELLS A TAKEOVER FROM ITS OWN ROW. Every row this resource commits records the digest\n * reconcile READ BACK, which it checked equal to the pin — so `output.sha256 === olds.sha256` for\n * every row of its own, and an update never changes the digest (a new digest is a new path, a\n * `replace`). The engine hands diff anything else only after a read of a path it holds no state\n * for: the adoption probe (`olds` = the declaration) or the recovery read of an interrupted\n * create (`olds` = its row). A non-file reads with digest '' (file-converge.ts).\n */\nimport { type FileTarget, readFileAttributes } from '../launchd/file-converge.ts';\nimport type { HostRunner } from '../launchd/runner.ts';\n\nconst TAKEN = 'already exists and is not this resource';\n\nconst otherBytes = (found: string, pinned: string): string =>\n `${found === '' ? 'something that is not a regular file' : `a file hashing to ${found}`} is ` +\n `there, not the pinned binary (${pinned}). --adopt takes over only the pinned binary: taking ` +\n 'over other bytes would overwrite them in place. Remove it (or move it aside) and deploy again';\n\n/** Plan side: why diff must refuse `found` — a digest read at a path with no state — or undefined. */\nexport const adoptionProblem = (found: string, pinned: string): string | undefined =>\n found === pinned ? undefined : `${TAKEN}: ${otherBytes(found, pinned)}`;\n\n/**\n * Apply side, for a reconcile with no `output` — a create, a replace's new generation, or the\n * resume of either: why it must not write, or undefined. `adopt` is adoptsAtApply's answer (never\n * true for a fresh replace). A symlink or directory is left to convergeFile, which refuses it by\n * kind.\n */\nexport const claimProblem = async (\n runner: HostRunner,\n want: FileTarget,\n adopt: boolean,\n): Promise<string | undefined> => {\n const stat = await runner.stat(want.path);\n if (stat?.kind !== 'file') return undefined;\n const found = (await readFileAttributes(runner, want.path))?.sha256 ?? '';\n if (found !== want.sha256) return adoptionProblem(found, want.sha256);\n if (adopt) return undefined;\n return (\n `${TAKEN}: it holds the pinned binary, but this stack holds no state for it and the plan ` +\n 'could not ask first (a prop was still an Output, or a replace landed on it). ' +\n 'Identical is not ours: once claimed, a later delete removes it from whoever put it there. ' +\n 'Deploy with --adopt to take it over (a create, or an interrupted install of this one), or ' +\n 'remove it. If another declaration in this stack owned it under another name, declare the ' +\n 'rename with renamedFrom() instead'\n );\n};\n",
|
|
22
22
|
"/**\n * Release.Binary's failures as tagged errors — each carrying the house refusal sentence\n * (`Release.Binary <path>: …`) as its `message`.\n *\n * ★ TAGGED BECAUSE ALCHEMY UPSTREAM REQUIRES IT (its AGENTS.md at v2.0.0-beta.79: Data.TaggedError,\n * `catchTag`, never a cast on `_tag`), so the classes need no rewrite on the way there. The\n * MESSAGE stays the kit's wording, so a deploy log reads the same as every other house family's.\n * ⚠️ TAGGED IS NOT YET TYPED END TO END — measured in error-channel.test.ts. catalogBinary() throws,\n * so in a stack program its BinaryRefused is a DEFECT that `catchTag` never sees; and the provider\n * runs every lifecycle call through the house `lift()`, which keeps the instance at runtime but\n * types the channel as `Error`. No caller can name one of these tags today without a cast.\n * ★ THE TAGS NAME NO VENDOR. Downloading a pinned archive, refusing an unsafe one and comparing\n * digests are the same for every catalog (docs/release-binary-upstream.md).\n */\nimport * as Data from 'effect/Data';\n\n/** The declaration itself: a version no catalog pins, a malformed pin, a bad path or mode. */\nexport class BinaryRefused extends Data.TaggedError('BinaryRefused')<{\n readonly message: string;\n}> {}\n\n/** The download: a status that is not 200, a body that is not the pinned size, a dead transport. */\nexport class DownloadFailed extends Data.TaggedError('DownloadFailed')<{\n readonly message: string;\n /** Worth another attempt: a transport failure or a 5xx, never a wrong size or a 404. */\n readonly retryable: boolean;\n}> {}\n\n/** Bytes that do not hash to their pin — the archive, or a member extracted from it. */\nexport class ChecksumMismatch extends Data.TaggedError('ChecksumMismatch')<{\n readonly message: string;\n readonly subject: string;\n readonly expected: string;\n readonly actual: string;\n}> {}\n\n/** An archive this reader will not trust: an unsafe or unexpected entry, a missing member. */\nexport class ArchiveRefused extends Data.TaggedError('ArchiveRefused')<{\n readonly message: string;\n}> {}\n",
|
|
23
23
|
"/**\n * A tar reader with one job: hand back the NAMED regular files of a vendor archive, and refuse the\n * whole archive if any entry could make a name mean something other than what it says.\n *\n * ★ IN PROCESS, NOT `tar` ON THE HOST. An exec'd tar writes through its own path — past the\n * HostRunner seam, past sudoRunner's allowlist, and past the member digest check, which has to\n * see the bytes BEFORE they exist on any disk. Nothing this file reads is ever written by it.\n * ★ STREAMING. It is fed the gunzip output chunk by chunk; an entry nobody asked for is counted\n * past, never held. vmutils unpacks to 264 MB across seven binaries (measured 2026-09-22) and a\n * stack wants two, so the unpacked archive never exists whole in memory.\n * ⛔ REFUSED, WHOLE ARCHIVE, whichever entry it is and whether or not it was asked for:\n * an absolute name; a `..` segment; a hard link, symlink, directory, device, FIFO or contiguous\n * file (only a regular file is accepted); a name given twice; a header whose checksum fails; a\n * size in GNU base-256; a header that is neither ustar nor GNU; a lone zero block between entries;\n * non-zero bytes after the end marker; an archive that stops before it.\n * ★ GNU LONG NAMES ('L', 'K') AND PAX HEADERS ('x', 'g') ARE REFUSED, NOT INTERPRETED. Each renames\n * the entry after it: a reader that honours them must get them exactly right to match exactly,\n * and one that skips them matches under the wrong name. Refusing costs nothing for an archive\n * that carries neither, and a vendor format change becomes a refusal that says what changed\n * instead of a silent mis-read.\n * ★ AN OPTIONAL `root`: ONE DECLARED LEADING DIRECTORY, STRIPPED, NEVER GUESSED. Measured\n * 2026-09-23: `gh api repos/<o>/<r>/releases/tags/<tag>` for each asset URL and digest, the\n * archive downloaded into a scratch directory (never executed), re-hashed against GitHub's\n * `digest`, then read by THIS reader (a driver script importing `tarReader`) both before and\n * after this change — refused whole either way without `root`, and, with it, parsed to\n * completion: `alertmanager-0.33.1.darwin-arm64.tar.gz` (37,247,168 B),\n * `blackbox_exporter-0.28.0.darwin-arm64.tar.gz` (15,705,022 B),\n * `node_exporter-1.12.1.darwin-arm64.tar.gz` (5,368,643 B) and\n * `postgres_exporter-0.20.1.darwin-arm64.tar.gz` (10,072,235 B) each recompute to GitHub's own\n * `digest`, and each wraps every entry in exactly one directory (typeflag '5', size 0, first)\n * named `<binary>-<version>.darwin-arm64/`, holding only root-level regular files (the binary,\n * `LICENSE`, `NOTICE`, and for alertmanager also `amtool` and `alertmanager.yml`) — no PAX or\n * GNU long-name entries, so this reader's refusal of both stays exactly as costly as before.\n * Without `root`, EVERY refusal above still holds byte-for-byte: a directory entry — the wrapper\n * included — is refused the same way it always was (docs/release-binary-catalogs.md,\n * docs/release-binary-upstream.md gap 11).\n */\nimport { ArchiveRefused } from './refused.ts';\n\nconst BLOCK = 512;\n\nconst KINDS: Readonly<Record<string, string>> = {\n '1': 'a hard link',\n '2': 'a symlink',\n '3': 'a character device',\n '4': 'a block device',\n '5': 'a directory',\n '6': 'a FIFO',\n '7': 'a contiguous file',\n K: 'a GNU long-link header',\n L: 'a GNU long-name header',\n g: 'a PAX global header',\n x: 'a PAX extended header',\n};\n\nconst refuse = (message: string): ArchiveRefused => new ArchiveRefused({ message });\nconst strict = new TextDecoder('utf-8', { fatal: true });\nconst ascii = new TextDecoder('latin1');\n\n/** One NUL-terminated header field. */\nconst field = (block: Uint8Array, start: number, length: number): Uint8Array => {\n const slice = block.subarray(start, start + length);\n const end = slice.indexOf(0);\n return end === -1 ? slice : slice.subarray(0, end);\n};\n\nconst text = (block: Uint8Array, start: number, length: number): string => {\n try {\n return strict.decode(field(block, start, length));\n } catch {\n throw refuse('an entry name is not UTF-8');\n }\n};\n\nconst octal = (block: Uint8Array, start: number, length: number, what: string): number => {\n const raw = block.subarray(start, start + length);\n if (((raw[0] ?? 0) & 0x80) !== 0) throw refuse(`${what} is base-256 encoded`);\n const digits = ascii\n .decode(raw)\n .replace(/[\\0 ]+$/, '')\n .replace(/^ +/, '');\n if (!/^[0-7]+$/.test(digits)) throw refuse(`${what} is not octal: ${JSON.stringify(digits)}`);\n return Number.parseInt(digits, 8);\n};\n\nconst checksumHolds = (block: Uint8Array): boolean => {\n let sum = 0;\n // The checksum field itself counts as eight spaces (POSIX ustar).\n for (let at = 0; at < BLOCK; at += 1) sum += at >= 148 && at < 156 ? 0x20 : (block[at] ?? 0);\n return sum === octal(block, 148, 8, 'a header checksum');\n};\n\n/** Why an entry name is unsafe to trust, or undefined. */\nconst nameProblem = (name: string): string | undefined => {\n if (name === '') return 'has an empty name';\n if (name.startsWith('/')) return 'is absolute';\n if (name.split('/').includes('..')) return 'climbs out of the archive with \"..\"';\n return undefined;\n};\n\n/** Concatenate chunks into one buffer. */\nexport const concatBytes = (parts: readonly Uint8Array[]): Uint8Array => {\n const out = new Uint8Array(parts.reduce((total, part) => total + part.length, 0));\n let at = 0;\n for (const part of parts) {\n out.set(part, at);\n at += part.length;\n }\n return out;\n};\n\nexport type TarContents = {\n /** The asked-for regular files, by exact name. An asked-for name that is absent is absent here. */\n readonly members: ReadonlyMap<string, Uint8Array>;\n /** Every entry name, in archive order — so a refusal can say what the archive did hold. */\n readonly names: readonly string[];\n};\n\n/**\n * A push parser: `push` each chunk of the unzipped stream, then `finish`. Either may throw.\n *\n * @param root When given, exactly one typeflag-'5' entry named `<root>/`, size 0, is accepted and\n * dropped rather than refused as a directory; every OTHER entry name must begin with the SEGMENT\n * `<root>/` (a `<root>-evil/x` sibling does not) and is reported, matched and kept under that\n * prefix stripped off. Omitted, behaviour is byte-identical to a reader with no root at all.\n */\nexport const tarReader = (wanted: ReadonlySet<string>, root?: string) => {\n const header = new Uint8Array(BLOCK);\n const members = new Map<string, Uint8Array>();\n const names: string[] = [];\n const seen = new Set<string>();\n let phase: 'header' | 'data' | 'pad' | 'end' = 'header';\n let filled = 0;\n let remaining = 0;\n let padding = 0;\n let zeros = 0;\n let name = '';\n let parts: Uint8Array[] | undefined;\n let rootSeen = false;\n const rootPrefix = root === undefined ? undefined : `${root}/`;\n\n const endEntry = () => {\n if (parts !== undefined) members.set(name, concatBytes(parts));\n parts = undefined;\n phase = padding > 0 ? 'pad' : 'header';\n };\n\n const startEntry = () => {\n if (header.every((byte) => byte === 0)) {\n zeros += 1;\n if (zeros === 2) phase = 'end';\n return;\n }\n if (zeros > 0) throw refuse('a zero block sits between entries (truncated or spliced)');\n if (!checksumHolds(header)) throw refuse('an entry header fails its checksum');\n const magic = ascii.decode(header.subarray(257, 265));\n const posix = magic === 'ustar\\u000000';\n if (!posix && magic !== 'ustar \\u0000')\n throw refuse('an entry header is neither ustar nor GNU');\n const prefix = posix ? text(header, 345, 155) : '';\n const rawName = prefix === '' ? text(header, 0, 100) : `${prefix}/${text(header, 0, 100)}`;\n const problem = nameProblem(rawName);\n if (problem !== undefined) throw refuse(`entry ${JSON.stringify(rawName)} ${problem}`);\n // ★ THE DECLARED ROOT IS RECOGNISED BEFORE THE GENERAL TYPE CHECK, and only by exact name: a\n // directory entry under any other name — nested, or a second copy of the root itself — still\n // falls through to that check below and is refused as a directory, same as with no root.\n if (rootPrefix !== undefined && rawName === rootPrefix) {\n if (rootSeen) {\n // ⚠️ Whatever type THIS entry is, its name is already taken: refused for reusing the\n // root's name, not necessarily for being a second directory (it need not be one).\n throw refuse(`entry \"${rawName}\" reuses the declared root's own name, appearing twice`);\n }\n const type = String.fromCharCode(header[156] ?? 0);\n const size = octal(header, 124, 12, `entry \"${rawName}\"'s size`);\n if (type !== '5' || size !== 0) {\n throw refuse(`entry \"${rawName}\" is the declared root but is not an empty directory`);\n }\n rootSeen = true;\n phase = 'header';\n return;\n }\n let stripped = rawName;\n if (rootPrefix !== undefined) {\n if (!rawName.startsWith(rootPrefix)) {\n throw refuse(`entry \"${rawName}\" is outside the declared root \"${rootPrefix}\"`);\n }\n // ⛔ THE STRIPPED NAME GETS THE SAME SAFETY CHECK AS A RAW ONE. `rawName` already passed\n // `nameProblem` above, but stripping a prefix can UNCOVER a `/` or `..` that was hiding\n // past it: `<root>//x` is not absolute as a whole name, but strips to `/x`, which is —\n // the exact thing this reader refuses a plain (rootless) archive for. MEASURED: without\n // this check, `<root>//x` beside `<root>/x` parsed to completion as two distinct entries,\n // `x` and `/x`, neither refused. `stripped` can never be empty here: the one raw name that\n // strips to '' is `rootPrefix` itself, handled above.\n stripped = rawName.slice(rootPrefix.length);\n const strippedProblem = nameProblem(stripped);\n if (strippedProblem !== undefined) {\n throw refuse(\n `entry \"${rawName}\" strips to ${JSON.stringify(stripped)}, which ${strippedProblem}`,\n );\n }\n }\n name = stripped;\n const type = String.fromCharCode(header[156] ?? 0);\n if (type !== '0' && type !== '\\0') {\n const kind = KINDS[type] ?? `of unknown type ${JSON.stringify(type)}`;\n throw refuse(`entry \"${rawName}\" is ${kind}; only regular files are accepted`);\n }\n if (seen.has(name)) throw refuse(`entry \"${rawName}\" appears twice`);\n seen.add(name);\n names.push(name);\n remaining = octal(header, 124, 12, `entry \"${rawName}\"'s size`);\n padding = (BLOCK - (remaining % BLOCK)) % BLOCK;\n parts = wanted.has(name) ? [] : undefined;\n phase = 'data';\n if (remaining === 0) endEntry();\n };\n\n const push = (chunk: Uint8Array): void => {\n let at = 0;\n while (at < chunk.length) {\n if (phase === 'end') {\n if (chunk.subarray(at).some((byte) => byte !== 0)) {\n throw refuse('data follows the end-of-archive marker');\n }\n return;\n }\n if (phase === 'header') {\n const take = Math.min(BLOCK - filled, chunk.length - at);\n header.set(chunk.subarray(at, at + take), filled);\n filled += take;\n at += take;\n if (filled === BLOCK) {\n filled = 0;\n startEntry();\n }\n } else if (phase === 'data') {\n const take = Math.min(remaining, chunk.length - at);\n // ⚠️ slice, not subarray: a chunk's buffer may be reused by the stream after this returns.\n parts?.push(chunk.slice(at, at + take));\n remaining -= take;\n at += take;\n if (remaining === 0) endEntry();\n } else {\n const take = Math.min(padding, chunk.length - at);\n padding -= take;\n at += take;\n if (padding === 0) phase = 'header';\n }\n }\n };\n\n const finish = (): TarContents => {\n if (phase !== 'end') throw refuse('the archive stops before its end-of-archive marker');\n if (rootPrefix !== undefined && !rootSeen) {\n throw refuse(`the declared root \"${rootPrefix}\" never appears in the archive`);\n }\n return { members, names };\n };\n\n return { finish, push };\n};\n",
|
|
24
|
-
"/**\n * A pinned archive, verified, to the one member a declaration names, verified — the order the\n * checks run in is the point of the file.\n *\n * 1. the archive's SHA-256 against its pin — BEFORE a single byte is unpacked;\n * 2. gunzip and tar-read as one stream, keeping only the declared member (tar.ts refuses anything\n * unsafe in the archive, asked-for or not);\n * 3. that member's SHA-256 against its own pin.\n *\n * ★ BOTH LAYERS, BECAUSE THE VENDOR HASHES BOTH. Each checksum file lists the archive AND every\n * binary inside it (measured 2026-09-22, all four). The archive check says the download is the\n * published file; the member check says the bytes about to be written are the published binary —\n * and it is the only check that still holds if the tar reader were ever wrong about a boundary.\n * ★ DecompressionStream, THE WEB STANDARD: node and bun both ship it, so dist behaves the same\n * under either runtime — no zlib binding, no dependency.\n * ⛔ IN MEMORY ONLY. Nothing here touches a disk, so no failure below can leave a staged download\n * behind; the bytes reach a host only through HostRunner.writeFileAtomic (file-converge.ts).\n */\nimport { sha256Hex } from '../launchd/job-form.ts';\nimport type { PinnedDownload } from './binary-form.ts';\nimport { ArchiveRefused, ChecksumMismatch } from './refused.ts';\nimport { type TarContents, tarReader } from './tar.ts';\n\n/** How much gzip is handed to the inflater at a time. */\nconst SLICE = 1 << 20;\n\n/**\n * Gunzip and read a tar, keeping only `wanted`. Throws ArchiveRefused.\n * @param root The one declared leading directory to strip (tar.ts) — a directory-wrapped vendor\n * archive (the Prometheus family, measured 2026-09-23) without it, or one that carries no root.\n */\nexport const extractMembers = async (\n gzipped: Uint8Array,\n wanted: ReadonlySet<string>,\n root?: string,\n): Promise<TarContents> => {\n const tar = tarReader(wanted, root);\n // ⚠️ FED IN SLICES, ON DEMAND. Enqueued whole, the 123.6 MB vmutils archive is inflated in one\n // transform step and all 264 MB of output queue up before the first read: MEASURED 2026-09-22,\n // a peak RSS of 1116 MB for vmalert alone under bun 1.4.0. `pull` hands over the next slice only\n // when the stream asks, so backpressure bounds what is inflated ahead of the tar reader.\n let offset = 0;\n // ★ The writable side of DecompressionStream accepts BufferSource (ArrayBuffer or a\n // view). pipeThrough is invariant there, so a Uint8Array source is rejected even\n // though every slice enqueued is one. Measured as TS2345 under TypeScript 7. No\n // zlib package: Bun and Node both ship this stream.\n const source = new ReadableStream<ArrayBufferView | ArrayBuffer>({\n pull(controller) {\n if (offset >= gzipped.length) {\n controller.close();\n return;\n }\n controller.enqueue(gzipped.slice(offset, offset + SLICE));\n offset += SLICE;\n },\n });\n const
|
|
24
|
+
"/**\n * A pinned archive, verified, to the one member a declaration names, verified — the order the\n * checks run in is the point of the file.\n *\n * 1. the archive's SHA-256 against its pin — BEFORE a single byte is unpacked;\n * 2. gunzip and tar-read as one stream, keeping only the declared member (tar.ts refuses anything\n * unsafe in the archive, asked-for or not);\n * 3. that member's SHA-256 against its own pin.\n *\n * ★ BOTH LAYERS, BECAUSE THE VENDOR HASHES BOTH. Each checksum file lists the archive AND every\n * binary inside it (measured 2026-09-22, all four). The archive check says the download is the\n * published file; the member check says the bytes about to be written are the published binary —\n * and it is the only check that still holds if the tar reader were ever wrong about a boundary.\n * ★ DecompressionStream, THE WEB STANDARD: node and bun both ship it, so dist behaves the same\n * under either runtime — no zlib binding, no dependency.\n * ⛔ IN MEMORY ONLY. Nothing here touches a disk, so no failure below can leave a staged download\n * behind; the bytes reach a host only through HostRunner.writeFileAtomic (file-converge.ts).\n */\nimport { sha256Hex } from '../launchd/job-form.ts';\nimport type { PinnedDownload } from './binary-form.ts';\nimport { ArchiveRefused, ChecksumMismatch } from './refused.ts';\nimport { type TarContents, tarReader } from './tar.ts';\n\n/** How much gzip is handed to the inflater at a time. */\nconst SLICE = 1 << 20;\n\n/**\n * Gunzip and read a tar, keeping only `wanted`. Throws ArchiveRefused.\n * @param root The one declared leading directory to strip (tar.ts) — a directory-wrapped vendor\n * archive (the Prometheus family, measured 2026-09-23) without it, or one that carries no root.\n */\nexport const extractMembers = async (\n gzipped: Uint8Array,\n wanted: ReadonlySet<string>,\n root?: string,\n): Promise<TarContents> => {\n const tar = tarReader(wanted, root);\n // ⚠️ FED IN SLICES, ON DEMAND. Enqueued whole, the 123.6 MB vmutils archive is inflated in one\n // transform step and all 264 MB of output queue up before the first read: MEASURED 2026-09-22,\n // a peak RSS of 1116 MB for vmalert alone under bun 1.4.0. `pull` hands over the next slice only\n // when the stream asks, so backpressure bounds what is inflated ahead of the tar reader.\n let offset = 0;\n // ★ The writable side of DecompressionStream accepts BufferSource (ArrayBuffer or a\n // view). pipeThrough is invariant there, so a Uint8Array source is rejected even\n // though every slice enqueued is one. Measured as TS2345 under TypeScript 7. No\n // zlib package: Bun and Node both ship this stream.\n const source = new ReadableStream<ArrayBufferView | ArrayBuffer>({\n pull(controller) {\n if (offset >= gzipped.length) {\n controller.close();\n return;\n }\n controller.enqueue(gzipped.slice(offset, offset + SLICE));\n offset += SLICE;\n },\n });\n // ⚠️ TS 7's DOM lib types this writable chunk as BufferSource, which pipeThrough\n // will not accept as Uint8Array. The slices enqueued above are Uint8Array.\n const gunzip = new DecompressionStream('gzip') as ReadableWritablePair<Uint8Array, Uint8Array>;\n const unzipped = source.pipeThrough(gunzip).getReader();\n try {\n for (;;) {\n const { done, value } = await unzipped.read();\n if (done) break;\n tar.push(value);\n }\n } catch (cause) {\n await unzipped.cancel().catch(() => undefined);\n if (cause instanceof ArchiveRefused) throw cause;\n throw new ArchiveRefused({ message: `not a gzip stream (${String(cause)})` });\n }\n return tar.finish();\n};\n\nconst mismatch = (subject: string, expected: string, actual: string): ChecksumMismatch =>\n new ChecksumMismatch({\n actual,\n expected,\n message: `${subject} hashes to ${actual}, not the pinned ${expected}`,\n subject,\n });\n\n/**\n * The declared member's bytes out of a downloaded archive, both layers checked.\n * ⚠️ `archive` may be shared with another resource's extraction (download.ts sharingInFlight):\n * this only reads it.\n */\nexport const verifiedMember = async (\n archive: Uint8Array,\n release: PinnedDownload,\n): Promise<Uint8Array> => {\n const archiveSha = sha256Hex(archive);\n if (archiveSha !== release.sha256) throw mismatch(release.url, release.sha256, archiveSha);\n const { members, names } = await extractMembers(archive, new Set([release.member]), release.root);\n const bytes = members.get(release.member);\n if (bytes === undefined) {\n const under = release.root === undefined ? '' : ` under root \"${release.root}/\"`;\n throw new ArchiveRefused({\n message: `${release.url} has no member named exactly \"${release.member}\"${under} (it has ${names.map((n) => `\"${n}\"`).join(', ') || 'none'})`,\n });\n }\n const memberSha = sha256Hex(bytes);\n if (memberSha !== release.memberSha256) {\n throw mismatch(`member \"${release.member}\"`, release.memberSha256, memberSha);\n }\n return bytes;\n};\n",
|
|
25
25
|
"/**\n * Release.Binary's read / reconcile / delete as plain async functions over a HostRunner and a\n * FetchArchive, so the lifecycle runs against fakes of both in tests. (diff: binary-diff.ts.)\n *\n * ⛔ ONE WRITER. The verified bytes reach the host through file-converge.ts — the path Host.File's\n * bytes take — and so through `HostRunner.writeFileAtomic` alone: a temp file in the same\n * directory, mode and owner set, rename. Under sudoRunner that is its staged `install -S`.\n * Nothing here opens a file, spawns `tar`, or stages a download on disk.\n * ★ REFUSE BEFORE TOUCHING ANYTHING. Validation runs before the first host call, the host checks\n * run before the first download, and the digest checks run before the one write — so every\n * refusal but a failed read-back can say \"Nothing was written.\"\n * ★ AN INSTALLED BINARY IS RECOGNISED BY ITS DIGEST. A file whose SHA-256 is the pin needs no\n * download to confirm, and a mode or owner fix re-writes the bytes already on disk.\n */\nimport {\n type FileTarget,\n convergeFile,\n readFileAttributes,\n removeWholeFile,\n resolveIds,\n} from '../launchd/file-converge.ts';\nimport type { HostFileAttributes } from '../launchd/host-file-form.ts';\nimport { sha256Hex } from '../launchd/job-form.ts';\nimport type { HostRunner } from '../launchd/runner.ts';\nimport { verifiedMember } from './archive.ts';\nimport { claimProblem } from './binary-claim.ts';\nimport {\n DEFAULT_BINARY_MODE,\n type PinnedDownload,\n type ReleaseBinaryAttributes,\n type ReleaseBinaryProps,\n binaryProblems,\n inPlaceRefusal,\n pinnedDownload,\n pinsMoved,\n releaseBinaryPath,\n} from './binary-form.ts';\nimport type { FetchArchive } from './download.ts';\nimport { ArchiveRefused, BinaryRefused, ChecksumMismatch, DownloadFailed } from './refused.ts';\n\nexport const NOTHING = 'Nothing was written.';\n\nexport const refuse = (path: string, message: string): BinaryRefused =>\n new BinaryRefused({ message: `Release.Binary ${path}: ${message}` });\n\n/** Re-say a download or archive failure as this resource's, keeping its tag. */\nconst restated = (path: string, cause: unknown): unknown => {\n const say = (message: string) => `Release.Binary ${path}: ${message}. ${NOTHING}`;\n if (cause instanceof ChecksumMismatch) {\n const { actual, expected, subject } = cause;\n return new ChecksumMismatch({ actual, expected, message: say(cause.message), subject });\n }\n if (cause instanceof ArchiveRefused) return new ArchiveRefused({ message: say(cause.message) });\n if (cause instanceof DownloadFailed) {\n return new DownloadFailed({ message: say(cause.message), retryable: cause.retryable });\n }\n return cause;\n};\n\nexport type Desired = { readonly want: FileTarget; readonly download: PinnedDownload };\n\n/** Validate every prop, then resolve owner and group through the runner. */\nexport const desiredBinary = async (\n runner: HostRunner,\n props: ReleaseBinaryProps,\n): Promise<Desired> => {\n const path = releaseBinaryPath(props);\n const problems = binaryProblems(props);\n if (problems.length > 0) throw refuse(path, `${problems.join('; ')}. ${NOTHING}`);\n const ids = await resolveIds(runner, props, path, refuse);\n const mode = props.mode ?? DEFAULT_BINARY_MODE;\n return { download: pinnedDownload(props), want: { mode, path, sha256: props.sha256, ...ids } };\n};\n\nconst withSource = (\n found: HostFileAttributes,\n download: PinnedDownload,\n): ReleaseBinaryAttributes => ({ ...found, member: download.member, url: download.url });\n\n/**\n * The file at the declaration's path, or undefined when absent — the adoption probe's answer.\n * ★ Its `sha256` is the digest of the bytes on disk, so a caller sees at once whether it is the\n * pinned binary (equal to `props.sha256`) without anything being executed.\n */\nexport const readBinary = async (\n runner: HostRunner,\n props: ReleaseBinaryProps,\n): Promise<ReleaseBinaryAttributes | undefined> => {\n const { download, want } = await desiredBinary(runner, props);\n const found = await readFileAttributes(runner, want.path);\n return found === undefined ? undefined : withSource(found, download);\n};\n\n/** An owned binary as it is now, at the path state recorded — no pins needed to find it. */\nexport const refreshBinary = async (\n runner: HostRunner,\n output: ReleaseBinaryAttributes,\n): Promise<ReleaseBinaryAttributes | undefined> => {\n const found = await readFileAttributes(runner, output.path);\n return found === undefined ? undefined : { ...found, member: output.member, url: output.url };\n};\n\n/**\n * ⛔ THE DIRECTORY IS DECLARED, NEVER INVENTED. Checked before any download: a missing directory\n * would otherwise cost 123 MB and then fail at the write. A symlink is refused as well — the\n * write would land wherever it points, under an owner nobody declared.\n */\nconst directoryReady = async (runner: HostRunner, props: ReleaseBinaryProps): Promise<void> => {\n const stat = await runner.stat(props.directory);\n /**\n * ⛔ AND ONE ONLY ITS OWNER MAY WRITE. The mode rule (binary-form.ts modeProblems) refuses a\n * group- or world-writable binary because its writers could change the code a daemon runs. A\n * directory they may write gives them the same power by another call: rename(2) their own file\n * over the binary, and the next launchd start runs theirs. The sticky bit is no excuse — a\n * binary directory has no business being shared.\n */\n if (stat?.kind === 'directory' && (stat.mode & 0o022) !== 0) {\n throw refuse(\n releaseBinaryPath(props),\n `directory ${props.directory} is writable by group or other (mode ` +\n `${stat.mode.toString(8).padStart(4, '0')}), so whoever may write it may replace the ` +\n `binary; declare it 0755 or narrower. ${NOTHING}`,\n );\n }\n if (stat?.kind === 'directory') return;\n const why = stat === undefined ? 'does not exist' : `is a ${stat.kind}, not a directory`;\n throw refuse(\n releaseBinaryPath(props),\n `directory ${props.directory} ${why}; declare it (HostDirectory) and pass its path. ${NOTHING}`,\n );\n};\n\nexport type ReconcileOptions = {\n /** The attributes state holds; undefined on a create. */\n readonly output?: ReleaseBinaryAttributes | undefined;\n /** The props state holds; undefined on a create and on an adoption. */\n readonly olds?: ReleaseBinaryProps | undefined;\n /** adoptsAtApply's answer. What it may take over is convergeFile's ⛔. @default false */\n readonly adopt?: boolean;\n /** Progress for the deploy log — the engine's `session.note`. */\n readonly note?: (message: string) => Promise<void>;\n /**\n * What is wrong with the pins as the stack program DECLARED them (declared-pins.ts) — an Output\n * there resolves to a plausible plain string by the time it reaches `props`. @default []\n */\n readonly declared?: readonly string[];\n};\n\n/** Install the declared binary unless it is already there, and return it as read back. */\nexport const reconcileBinary = async (\n runner: HostRunner,\n fetch: FetchArchive,\n props: ReleaseBinaryProps,\n options: ReconcileOptions = {},\n): Promise<ReleaseBinaryAttributes> => {\n const { adopt = false, declared = [], note = async () => undefined } = options;\n // ⛔ FIRST, before any host call: a digest the deploy computed is a fetch by another name.\n if (declared.length > 0) {\n throw refuse(\n releaseBinaryPath(props),\n `${declared.join('; ')}. A pin is copied into reviewed code, never computed during the ` +\n `deploy (declared-pins.ts). ${NOTHING}`,\n );\n }\n const { download, want } = await desiredBinary(runner, props);\n // ⛔ The apply-time half of binary-diff.ts's in-place refusal, for an update whose `olds` say so.\n const olds = options.olds;\n if (olds !== undefined && releaseBinaryPath(olds) === want.path && pinsMoved(olds, props)) {\n throw refuse(want.path, `${inPlaceRefusal(olds, props)}. ${NOTHING}`);\n }\n await directoryReady(runner, props);\n // ⛔ WITH NO STATE, ONLY THE PINNED BINARY UNDER --adopt (binary-claim.ts).\n // ⚠️ NOT an update across a move (`output` at another path): --adopt can never speak for one, so\n // refusing identical bytes there would strand the resume of our own interrupted move with no\n // remedy but a hand removal. Other bytes there stay refused (file-converge.ts).\n if (options.output === undefined) {\n const problem = await claimProblem(runner, want, adopt);\n if (problem !== undefined) throw refuse(want.path, `${problem}. ${NOTHING}`);\n }\n const bytesFor = async (before: HostFileAttributes | undefined): Promise<Uint8Array> => {\n // ★ The right bytes with the wrong mode or owner: re-write what is there, re-hashed, rather\n // than download 123 MB to get the same bytes back.\n if (before?.sha256 === want.sha256) {\n const local = await runner.readFile(want.path);\n if (local !== undefined && sha256Hex(local) === want.sha256) return local;\n }\n await note(`downloading ${download.url} (${String(download.size)} bytes)`);\n try {\n const bytes = await verifiedMember(await fetch(download.url, download.size), download);\n await note(`verified ${download.member} ${download.memberSha256}`);\n return bytes;\n } catch (cause) {\n throw restated(want.path, cause);\n }\n };\n const spec = { bytesFor, owner: props.owner, refuse, want };\n return withSource(await convergeFile(runner, spec, options.output, adopt), download);\n};\n\n/** Remove the binary. Idempotent. ⛔ Refuses a path that has since become a symlink or directory. */\nexport const deleteBinary = (runner: HostRunner, output: ReleaseBinaryAttributes): Promise<void> =>\n removeWholeFile(runner, output, refuse);\n",
|
|
26
26
|
"/**\n * Release.Binary's `read` with no attributes. Alchemy asks it twice over (ownership/probe.ts): as\n * the ADOPTION PROBE (no row; `olds` is the declaration, `instanceId` fresh) and as the RECOVERY\n * READ of a row whose create never recorded attributes (`olds` and `instanceId` are the row's —\n * Plan.ts for a `creating` row, Apply.ts for such a row it must delete).\n *\n * ⛔ THE PROBE VALIDATES; THE RECOVERY READ NEVER FAILS ITS CALLER. The probe's `olds` is today's\n * declaration, so a malformed prop fails the plan there, before anything is touched. The recovery\n * read's `olds` is the FAILED deploy's props, and with `directory: dir.path` — the documented\n * usage — a first deploy commits its `creating` row while the directory is still an Output, so\n * the row has no `directory` at all. 🔴 MEASURED 2026-09-22 (adopt-parity.test.ts): after ANY\n * failed first install — a 404, a checksum mismatch, a mode refused at apply — every later plan\n * died with `TypeError: undefined is not an object (evaluating 'path.startsWith')`, the fixed\n * declaration included, and removing the declaration failed too (DestroyError: the orphan's\n * recovery read crashed the same way). The stage was bricked until a hand `alchemy state delete`.\n * ownership/probe.ts states the rule this broke: the recovery read \"NEVER FAILS THE CALLER\".\n * ★ \"NOTHING RECOVERED\" IS THE SAFE ANSWER, NOT `Unowned`. The plan then re-drives the create, and\n * reconcile looks at the path itself with every prop resolved: a file there is refused unless\n * `--adopt` (binary-claim.ts), exactly as ownership.md says a create interrupted while a prop was\n * an Output resumes. An orphan's row is dropped and its path left alone — a leak at worst, never\n * a delete of something unproven.\n * ★ THE ROW, NOT THE SHAPE OF `olds`, SAYS WHICH READ THIS IS: a probe's instance id is minted for\n * the probe, so no row holds it (ownership/rows.ts). Without a Stack or State in context a row\n * reads as absent, and this validates as the probe does — the behaviour before this file.\n */\nimport { Unowned } from 'alchemy/AdoptPolicy';\nimport * as Effect from 'effect/Effect';\nimport { lift } from '../launchd/host-effect.ts';\nimport type { HostRunner } from '../launchd/runner.ts';\nimport { recordedGeneration } from '../ownership/rows.ts';\nimport type { ReleaseBinaryProps } from './binary-form.ts';\nimport { readBinary } from './binary-lifecycle.ts';\n\ntype Ask = { readonly fqn: string; readonly instanceId: string; readonly olds: unknown };\n\n/** The file a declaration (or a row) names, as `Unowned` — or undefined when there is none. */\nexport const readWithoutState = (runner: HostRunner, ask: Ask) =>\n Effect.gen(function* () {\n const recovering = (yield* recordedGeneration(ask.fqn, ask.instanceId)) !== undefined;\n const read = lift(() => readBinary(runner, ask.olds as ReleaseBinaryProps));\n const found = recovering\n ? yield* read.pipe(\n Effect.catch((cause) =>\n Effect.as(\n Effect.logWarning(\n `${ask.fqn}: the interrupted create's row cannot locate its binary (${cause.message}); ` +\n 'nothing is recovered, and the create is re-driven with the declaration as it is now',\n ),\n undefined,\n ),\n ),\n )\n : yield* read;\n return found === undefined ? undefined : Unowned(found);\n });\n",
|
|
27
27
|
"/**\n * The pins as the STACK PROGRAM declared them — before the engine resolved a single Output — checked\n * at apply. The half of \"a pin is never computed during the deploy\" that a FIRST deploy needs.\n *\n * ⛔ WHY APPLY HAS TO ASK THE STACK, NOT `news`. By the time `reconcile` runs, the engine has\n * resolved every Output in `news`, so a digest wired from another resource (a checksum file read\n * at apply, a lookup, a computed value) arrives as a well-formed plain string, indistinguishable\n * from a reviewed pin. And on a first deploy nothing else looked: Alchemy never diffs a create,\n * and skips the adoption probe while `news` holds an Output (beta.79 Plan.ts). 🔴 MEASURED\n * 2026-09-22 (apply-pins.test.ts): a swapped archive plus the swapped digests, wired in as an\n * Output, installed the swapped bytes and the deploy reported success. binary-diff.ts refused the\n * same declaration only from the SECOND plan on, after the wrong binary was on the host.\n * ★ `Stack.resources[fqn].Props` IS WHAT THE PROGRAM PASSED, Outputs and all: Alchemy's\n * `Resource` records it at registration (beta.79 Resource.ts, `Props: props`), and the same Stack\n * reaches the apply (ownership/adopt.ts reads `Adopt` from the same record for the same reason).\n * pinProblems then sees the Output itself — a function-typed proxy, an Effect or a Config — and\n * refuses it as \"not a plain string\".\n * ⚠️ NO STACK, NO ANSWER. A handler called outside the engine (the fake-provider.ts harness) has no\n * Stack service and no registration to read, so this says nothing there; the engine always has\n * one. apply-pins.test.ts runs the real Plan and Apply, so an Alchemy upgrade that stops\n * recording `Props` there makes the swapped bytes install again, and fails that test by name.\n */\nimport { Stack } from 'alchemy/Stack';\nimport * as Effect from 'effect/Effect';\nimport * as Option from 'effect/Option';\nimport { pinProblems } from './binary-form.ts';\n\n/** Everything wrong with the pins of the resource at `fqn` as its stack program declared them. */\nexport const declaredPinProblems = (fqn: string): Effect.Effect<string[]> =>\n Effect.gen(function* () {\n const stack = yield* Effect.serviceOption(Stack);\n if (Option.isNone(stack)) return [];\n const declared: unknown = stack.value.resources[fqn]?.Props;\n if (typeof declared !== 'object' && typeof declared !== 'function') return [];\n if (declared === null) return [];\n return pinProblems(declared as Parameters<typeof pinProblems>[0]).map(\n (problem) => `as declared in the stack program, ${problem}`,\n );\n });\n",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"/**\n * The release-binary provider with ONE HostRunner and its own HTTP client, as a single layer for a\n * host stack:\n *\n * const runner = localRunner();\n * Layer.mergeAll(launchdProviders(runner), releaseProviders(runner), …the stack's others)\n *\n * ★ PASS THE SAME RUNNER THE JOBS USE, so the binary and the daemon that runs it are written by one\n * identity on one host — a stack cannot install as one user and bootstrap as another by accident.\n * ⛔ THERE IS NO DEFAULT RUNNER. A binary is written wherever the runner reaches; a silent default to\n * \"this machine\" would install a Mac's daemons onto whichever laptop ran the deploy (the same\n * reasoning as linuxProviders()).\n * ★ `FetchHttpClient.layer` IS PROVIDED HERE, not left to the stack: the Mac host stack this exists\n * for provides no HTTP layer, and a missing one fails only at the first install.\n */\nimport * as Layer from 'effect/Layer';\nimport * as FetchHttpClient from 'effect/unstable/http/FetchHttpClient';\nimport { type HostRunner, hostRunnerLayer } from '../launchd/runner.ts';\nimport { ReleaseBinaryProvider } from './binary.ts';\n\nexport const releaseProviders = (runner: HostRunner) =>\n ReleaseBinaryProvider().pipe(\n Layer.provide(Layer.mergeAll(hostRunnerLayer(runner), FetchHttpClient.layer)),\n );\n",
|
|
32
32
|
"/**\n * VictoriaMetrics' release archives, pinned — the first data set for Release.Binary, and vendor\n * facts only: every digest copied from the vendor's own checksum file for that archive and\n * cross-checked against GitHub's asset digest ON THE RECORDED DATE. Nothing here names a host, a\n * path, a user or an estate. victoria.test.ts holds every pin to the committed checksum files\n * (fixtures/victoria/) — ⚠️ consistency, not provenance: it cannot re-read GitHub, so a fixture\n * edited together with its pins passes, and review is the gate for that.\n *\n * ★ PINNED IN CODE, NOT FETCHED AT APPLY. The checksum file is published by the same account, on\n * the same release, over the same channel as the archive it describes — and these releases are\n * MUTABLE (`\"immutable\": false` on v1.151.0, v1.52.0 and v0.10.0, measured 2026-09-22; the\n * vendor's own release Makefile says to delete an asset in the UI to re-upload it). Whoever can\n * swap an archive can swap its checksum file in the same minute, and a provider that trusts\n * whatever checksum file it finds would install the new bytes and call them verified. A pin\n * committed here changes only through a reviewed kit release, so a swapped asset is a REFUSAL\n * that names the digest it expected. It also means an apply makes one request, not two, and a\n * plan knows exactly which bytes it will install without touching the network.\n * ⚠️ TRUST ROOT. At apply, these pins alone: the transport (TLS, the redirect, the CDN) can fail\n * a download, never pass other bytes. The pins' own root is the GitHub release over TLS as read\n * on RECORDED (trust on first use), uploaded from a maintainer's personal account.\n * VictoriaMetrics publishes no signature, cosign bundle, SLSA provenance or GitHub artifact\n * attestation for these archives (measured 2026-09-22: no .sig/.asc/.pem/.bundle assets; the\n * attestations API answers 404 for all four digests, next to a positive control that answers\n * 200). A checksum file proves the download is not corrupt — integrity — not who built it.\n * ⛔ A NEW VERSION IS A NEW ENTRY, WALKED DOWN THE SAME WAY — docs/release-binary-catalogs.md.\n * Never `latest`, never sorted by publish date: VictoriaLogs v1.51.1 was published AFTER v1.52.0.\n * ⛔ EXACT NAMES. `-enterprise`, `-cluster` and `-enterprise-cluster` archives sit beside each of\n * these with every prefix in common, so each asset name below is written out whole — never\n * composed from a package and a version, which is how a template drifts onto a sibling.\n * ★ THE VENDOR'S `-prod` SUFFIX IS DROPPED ON PURPOSE: every member is `<binary>-prod`, and\n * installing it as `<binary>` keeps a job's argv[0], `ps` and `pgrep` names identical to the\n * builds it replaces. The map is written out per package, never derived.\n */\nimport type { ReleaseCatalog } from './catalog.ts';\n\nconst RECORDED = '2026-09-22';\nconst DOWNLOAD = 'https://github.com/VictoriaMetrics';\n\nexport const VICTORIA_RELEASES: ReleaseCatalog = {\n packages: {\n 'victoria-logs': {\n binaries: { 'victoria-logs': 'victoria-logs-prod' },\n versions: {\n '1.52.0': {\n 'darwin-arm64': {\n asset: 'victoria-logs-darwin-arm64-v1.52.0.tar.gz',\n checksums: {\n recorded: RECORDED,\n sha256: 'd4ca686c3cceec78a0f4e733ef9ab3f857549131ea48cd6f89f701cda406ac4b',\n url: `${DOWNLOAD}/VictoriaLogs/releases/download/v1.52.0/victoria-logs-darwin-arm64-v1.52.0_checksums.txt`,\n },\n members: {\n 'victoria-logs-prod':\n '9e48809e314902782959b3a4e683a3087476759d0293791a0564921c676ca7be',\n },\n repo: 'VictoriaMetrics/VictoriaLogs',\n sha256: '3157d4b6181d8a7e3e30918e2cbfcd4cc4cb66263e3ef21ea91e4f20f8980883',\n size: 10_943_697,\n tag: 'v1.52.0',\n },\n },\n },\n },\n 'victoria-metrics': {\n // ⛔ The SINGLE-NODE archive. `…-cluster.tar.gz` holds vminsert/vmselect/vmstorage instead.\n binaries: { 'victoria-metrics': 'victoria-metrics-prod' },\n versions: {\n '1.151.0': {\n 'darwin-arm64': {\n asset: 'victoria-metrics-darwin-arm64-v1.151.0.tar.gz',\n checksums: {\n recorded: RECORDED,\n sha256: '735745ee0e7b2d5b8118883f2d0ed124c2a12d70261c16380128f5e362566d1e',\n url: `${DOWNLOAD}/VictoriaMetrics/releases/download/v1.151.0/victoria-metrics-darwin-arm64-v1.151.0_checksums.txt`,\n },\n members: {\n 'victoria-metrics-prod':\n '3c493a95ac1e9034a3261b230c4d62f3b186a04aafcdbacc99bfc110dc5de6a1',\n },\n repo: 'VictoriaMetrics/VictoriaMetrics',\n sha256: '8792437c4c0b63719fed7b44ad18d4b4167bbe6861ab3e84c7bb010c922e7582',\n size: 12_739_105,\n tag: 'v1.151.0',\n },\n },\n },\n },\n 'victoria-traces': {\n binaries: { 'victoria-traces': 'victoria-traces-prod' },\n versions: {\n '0.10.0': {\n 'darwin-arm64': {\n asset: 'victoria-traces-darwin-arm64-v0.10.0.tar.gz',\n checksums: {\n recorded: RECORDED,\n sha256: 'cd32bfc21900b48ba543124e43827a1d13d735e45d50dbfd742c0ca6640e1aae',\n url: `${DOWNLOAD}/VictoriaTraces/releases/download/v0.10.0/victoria-traces-darwin-arm64-v0.10.0_checksums.txt`,\n },\n members: {\n 'victoria-traces-prod':\n '4759ec89a466129b9eefc22244a111e1f489739340747805fd93b58fd0f7b2dd',\n },\n repo: 'VictoriaMetrics/VictoriaTraces',\n sha256: 'cbe83f1d409cbb85fbf1c890c4a9b7fd34c1d74acec4dce2e0ebe46fcb260e38',\n size: 11_126_077,\n tag: 'v0.10.0',\n },\n },\n },\n },\n vmutils: {\n // ★ ONE ARCHIVE, SEVEN TOOLS (measured: 264 MB unpacked). Only a declared member is extracted.\n // vmalert-logs is not a tool of its own: it is vmalert run with `--rule.defaultRuleType=vlogs`.\n binaries: {\n vmagent: 'vmagent-prod',\n vmalert: 'vmalert-prod',\n 'vmalert-tool': 'vmalert-tool-prod',\n vmauth: 'vmauth-prod',\n vmbackup: 'vmbackup-prod',\n vmctl: 'vmctl-prod',\n vmrestore: 'vmrestore-prod',\n },\n versions: {\n '1.151.0': {\n 'darwin-arm64': {\n asset: 'vmutils-darwin-arm64-v1.151.0.tar.gz',\n checksums: {\n recorded: RECORDED,\n sha256: 'fda5a64fce9022bee7614c3fda27271c0826f1d7b90f8b162e1f48c77c0df04b',\n url: `${DOWNLOAD}/VictoriaMetrics/releases/download/v1.151.0/vmutils-darwin-arm64-v1.151.0_checksums.txt`,\n },\n members: {\n 'vmagent-prod': 'd3b6fa1f71ef48beac619f15f8adfa7610e76605caf37db1ebfbb379b6692329',\n 'vmalert-prod': '62845795167e9ff47890e83ac4ac5934693c105767db88591c95a08f3c4fb354',\n 'vmalert-tool-prod':\n 'cbffb9495e4bb1457c9d45e0a7064b3a3a29b2cfd1ae24bfe8f00ec327c26998',\n // ⚠️ gitleaks' generic-api-key rule reads this one public digest as a key (its\n // entropy; measured 2026-09-22). It is the vendor's published SHA-256 of vmauth-prod.\n 'vmauth-prod': '398df9e0f5b7035d037e39ee9ff66a10ddde5333d832602463aa4d2865fdb508', // gitleaks:allow\n 'vmbackup-prod': '1974a2ee211b49bf581287808e010846f6c47ff135276214c6da628567777b9e',\n 'vmctl-prod': '998b111eee206b98e6d25fdf2fbaa455ecc17c7f9e7c3b2373e127cef762459f',\n 'vmrestore-prod': 'fc824df7215b01b57921ed46afde7fea6b6698adf13d9ea8e3fe36e194ef8190',\n },\n repo: 'VictoriaMetrics/VictoriaMetrics',\n sha256: '27d68bac90e28929214091ed9d27f2e9fef25a080407e2c8661ea9b52dd6b183',\n size: 123_584_800,\n tag: 'v1.151.0',\n },\n },\n },\n },\n },\n vendor: 'VictoriaMetrics',\n};\n"
|
|
33
33
|
],
|
|
34
|
-
"mappings": "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",
|
|
35
|
-
"debugId": "
|
|
34
|
+
"mappings": "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",
|
|
35
|
+
"debugId": "6B19B9957CE8671964756E2164756E21",
|
|
36
36
|
"names": []
|
|
37
37
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# LXC through distilled
|
|
2
|
+
|
|
3
|
+
`Proxmox.Lxc` uses the generated config GET/PUT, cluster resource index, container
|
|
4
|
+
POST/DELETE, resize PUT and task-status GET. Form guards, ownership checks, strict
|
|
5
|
+
adoption, no-shrink rules, digests, state filtering and default retain are preserved.
|
|
6
|
+
`NetworkApply` retains its separate helper; this slice does not change network reloads.
|
|
7
|
+
|
|
8
|
+
## Absence and permissions
|
|
9
|
+
|
|
10
|
+
The SDK's GET-only `LxcConfigNotFound` matches the exact vendor missing-config
|
|
11
|
+
exception. Permission errors, arbitrary HTTP500 responses and malformed successful
|
|
12
|
+
config reads remain failures. A config requires the vendor's digest field.
|
|
13
|
+
|
|
14
|
+
A missing config on one node does not prove its cluster-wide vmid is free. The
|
|
15
|
+
provider retains the same read credential for the subsequent `type=vm` cluster
|
|
16
|
+
index. The config handler requires `VM.Audit` on `/vms/{vmid}` before loading the
|
|
17
|
+
config. The cluster index filters by that same permission, so this credential can
|
|
18
|
+
observe that vmid, including a QEMU guest or a container moved to another node.
|
|
19
|
+
Those collisions refuse creation. A malformed index cannot establish absence.
|
|
20
|
+
|
|
21
|
+
## Writes and tasks
|
|
22
|
+
|
|
23
|
+
Every task-starting write receives a fresh provision credential and polls with
|
|
24
|
+
that exact credential. Config PUT keeps the digest and precedes disk growth.
|
|
25
|
+
Creation waits up to the existing 180 one-second polls; resize/delete use 60.
|
|
26
|
+
A failed or malformed poll is an uncertain task outcome with the UPID and task-log
|
|
27
|
+
guidance. It never authorizes a second write. A completed task must say exactly `OK`.
|
|
28
|
+
|
|
29
|
+
The SDK percent-encodes UPID path labels. Installed PVE HTTP server source decodes
|
|
30
|
+
the request path before routing; this reaches the same task as the literal UPID.
|
|
31
|
+
The generated SDK currently names indexed config placeholders `net_n_`, `mp_n_`,
|
|
32
|
+
`dev_n_` and `unused_n_`. Its core transport explicitly passes unknown body keys
|
|
33
|
+
through, so vendor `net0`/`mp0` form keys are preserved and tested. Improving the
|
|
34
|
+
generated dynamic-key type surface remains a concrete SDK generator follow-up.
|
|
35
|
+
|
|
36
|
+
## Evidence and scope
|
|
37
|
+
|
|
38
|
+
The pinned PVE9.2.11 schema cache matches the repository manifest SHA256
|
|
39
|
+
`9def8f13611184ee1c7d0399713130dfc4a065701d0d91a69b9c03df929344e9`.
|
|
40
|
+
Local pinned pve-manager source at `f6997e698c7933ea8e62319e2bf1bf7262daa56a`,
|
|
41
|
+
`PVE/API2/Cluster.pm:588`, supplies the per-vmid list permission filter.
|
|
42
|
+
|
|
43
|
+
Installed source was read without modifying PVE on 2026-09-24:
|
|
44
|
+
|
|
45
|
+
| Package | File and relevant lines | SHA256 |
|
|
46
|
+
| ----------------------------- | -------------------------- | ------------------------------------------------------------------ |
|
|
47
|
+
| pve-container6.1.13 | API2/LXC/Config.pm:25–100 | `65ed7408b4bab8e0ffc7235019b2b0486b1cc039af4985754175b6543ffa0984` |
|
|
48
|
+
| pve-container6.1.13 | LXC/Config.pm:60–65 | `5d6614024d6570114820d811dc0f4c403a5b9e4ed404d66d89d0fed9e9ffdb2c` |
|
|
49
|
+
| libpve-guest-common-perl6.0.5 | AbstractConfig.pm:51–62 | `70432cce604f3bc7ff525c2c20028a97173394d5aa2b585c36b50d0761871494` |
|
|
50
|
+
| libpve-http-server-perl6.0.5 | APIServer/AnyEvent.pm:1542 | `ff86c8fed9af157f909578e7ecf3e4144032cccf5d72af73e27243860de3013a` |
|
|
51
|
+
|
|
52
|
+
Offline engine tests prove matching adoption, create-to-noop, ownership, retention,
|
|
53
|
+
digest handling, collision refusal and no shrink. SDK boundary tests pin indexed
|
|
54
|
+
fields, credential continuity and bounded task uncertainty. No live LXC write or
|
|
55
|
+
deploy is part of this migration. The opt-in vault-door consumer still needs its
|
|
56
|
+
published dependency, declaration review and live plan before any creation.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Replication and firewall alias transport
|
|
2
|
+
|
|
3
|
+
The two providers call named `@distilled.cloud/proxmox/cluster` operations for
|
|
4
|
+
read, create, update and delete. They retain existing credential roles, lease
|
|
5
|
+
reuse, form guards, attributes and explicit adoption. Matching adoption writes
|
|
6
|
+
nothing. SDK failures propagate with their original typed errors.
|
|
7
|
+
|
|
8
|
+
## Vendor evidence
|
|
9
|
+
|
|
10
|
+
Replication was checked against local pve-manager **9.2.11**, commit
|
|
11
|
+
`f6997e698c7933ea8e62319e2bf1bf7262daa56a`,
|
|
12
|
+
`PVE/API2/ReplicationConfig.pm`:
|
|
13
|
+
|
|
14
|
+
- GET lines 105–120: exact `no such replication job '<id>'` exception.
|
|
15
|
+
- PUT lines 222–227: exact `no such job '<id>'` exception.
|
|
16
|
+
- DELETE lines 287–328: the same missing-job exception; without `force` or
|
|
17
|
+
`keep`, an existing local job gets `remove_job=full`. Cleanup is asynchronous.
|
|
18
|
+
|
|
19
|
+
The source patch classifies these exact HTTP 500 messages for structured job
|
|
20
|
+
IDs. Other 500s, authorization failures and malformed successful reads are not
|
|
21
|
+
absence. PUT still sends `delete=remove_job` to revive a marked job. The provider
|
|
22
|
+
never adds `force` or `keep`, waits for cleanup, or widens `VM.Replicate` grants.
|
|
23
|
+
|
|
24
|
+
Firewall aliases were checked against installed **pve-firewall 6.0.5** source,
|
|
25
|
+
read over SSH on 2026-09-24 without reading firewall configuration:
|
|
26
|
+
`PVE/API2/Firewall/Aliases.pm`, SHA256
|
|
27
|
+
`aa4d71ea897515ca71caa8e04abd142aedf8077058649f793605f014be84db0e`.
|
|
28
|
+
|
|
29
|
+
- GET lines 203–206 and PUT line 252 raise an HTTP 400 parameter exception
|
|
30
|
+
containing only `errors.name = "no such alias"` when absent.
|
|
31
|
+
- DELETE lines 299–327 removes the map key without checking existence. It is
|
|
32
|
+
already idempotent; actual delete failures still propagate.
|
|
33
|
+
- PUT reconstructs the entry from name, CIDR and optional comment. Omitting a
|
|
34
|
+
comment clears it; a generated `delete` field would be wrong.
|
|
35
|
+
|
|
36
|
+
Only the exact sole-field validation envelope is exposed to the SDK's
|
|
37
|
+
operation-specific error matcher. Wrong fields, mixed errors and unrelated
|
|
38
|
+
operations keep `ParameterVerificationFailed`. Alias reads require a nonempty
|
|
39
|
+
CIDR and a matching case-folded name. A malformed success never authorizes POST.
|
|
40
|
+
Case-only names remain one identity; actual renames remain create-first replace.
|
|
41
|
+
|
|
42
|
+
## Verification boundary
|
|
43
|
+
|
|
44
|
+
Offline tests run the real distilled protocol and Alchemy Plan/Apply: adoption,
|
|
45
|
+
second no-op, create-on-precise-absence, drift repair, retained resources, delete
|
|
46
|
+
failures, removal-marker revival and alias replacement order. They verify actual
|
|
47
|
+
form fields and that read failures stop writes. No live job or alias was created,
|
|
48
|
+
changed or deleted. The historical empty-cluster evidence in each resource is
|
|
49
|
+
not a new live acceptance claim.
|
|
50
|
+
|
|
51
|
+
SDK source changes are made in local distilled and regenerated into the interim
|
|
52
|
+
package. Publish the SDK before pinning a provider release to it; a local source
|
|
53
|
+
alias is not proof that a registry consumer can load the new error tags.
|
|
@@ -6,10 +6,11 @@ local distilled fixes first, verbatim source copies, and published npm aliases.
|
|
|
6
6
|
|
|
7
7
|
## Implemented transport
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
ACL, ApiToken, BackupJob, CephDaemon, CephFs, CephOsd, CephPool,
|
|
11
|
-
|
|
12
|
-
ZfsPool. All six existing PBS families now
|
|
9
|
+
Twenty-two existing PVE resource families use named distilled operations throughout:
|
|
10
|
+
ACL, ApiToken, BackupJob, CephDaemon, CephFs, CephOsd, CephPool, FirewallAlias, Group,
|
|
11
|
+
Lxc, MetricServer, NetworkApply, NodeNetwork, NotificationMatcher, NotificationTarget,
|
|
12
|
+
Pool, ReplicationJob, Role, Storage, User, Vm and ZfsPool. All six existing PBS families now
|
|
13
|
+
do too: Datastore, NotificationMatcher,
|
|
13
14
|
NotificationTarget, PruneJob, SyncJob and VerifyJob.
|
|
14
15
|
|
|
15
16
|
The latest migration preserves credential leases, safe member failover, bounded
|
|
@@ -18,6 +19,8 @@ The newly migrated pool, metric, job and notification providers fold only typed
|
|
|
18
19
|
missing-resource errors to absence; their other SDK failures propagate.
|
|
19
20
|
Protocol fixtures exercise the generated operations; Alchemy engine tests prove
|
|
20
21
|
matching adoption does not write and a real update settles to a no-op.
|
|
22
|
+
[Replication and alias evidence](./proxmox-replication-firewall-distilled.md) records
|
|
23
|
+
precise absence, async replica cleanup, comment clearing and identity replacement.
|
|
21
24
|
|
|
22
25
|
The SDK patches record PVE 9.2.11 source and PBS 4.2.6-1 schema provenance. Read-only
|
|
23
26
|
probes against PVE 9.2.11 and PBS 4.2.3 distinguish notification HTTP404 responses
|
|
@@ -27,32 +30,34 @@ codes or message text to make that distinction.
|
|
|
27
30
|
## Consumer gate
|
|
28
31
|
|
|
29
32
|
These families cover the default TB4/HF-Ops/PBS adoption declarations in
|
|
30
|
-
`homeflare-proxmox` at commit `91b31b0`. Its opt-in vault-door Lxc
|
|
31
|
-
|
|
33
|
+
`homeflare-proxmox` at commit `91b31b0`. Its opt-in vault-door Lxc now has
|
|
34
|
+
[SDK transport](./proxmox-lxc-distilled.md); live creation remains a separate gate.
|
|
35
|
+
This source migration alone does not establish live adoption.
|
|
32
36
|
After both SDKs and the provider release publish, the consumer pins those exact
|
|
33
37
|
versions, runs its full check and all three adoption verifiers, then compares the
|
|
34
38
|
read and admin plans at stage `live`. A write requires a fresh matching proof.
|
|
35
39
|
|
|
36
40
|
## Remaining PVE families
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
Seven existing families still retain some hand-client transport: SdnApply, SdnZone,
|
|
43
|
+
SdnVnet, SdnSubnet, HaResource, HaRule and CephFlag.
|
|
44
|
+
Their previous measured-none records
|
|
41
45
|
are historical inventories, not a current census or permission to skip migration.
|
|
42
46
|
|
|
43
|
-
- NetworkApply
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- Lxc task polling must keep the credential that started the task, preserve bounded
|
|
47
|
-
uncertainty after connection loss, and retain its cluster-wide identity checks.
|
|
47
|
+
- NetworkApply reads `listNodeNetwork`. A string `changes` sibling is preserved by
|
|
48
|
+
the protocol and decoded by that operation's union. The diff is counted and does
|
|
49
|
+
not enter state or logs.
|
|
48
50
|
- SdnApply distinguishes an unavailable subsystem from failed reads and refuses
|
|
49
51
|
undiffable settings. Those semantics need vendor-backed typed SDK errors.
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
+
- Vm (QEMU) uses named operations. GET and PUT stay on
|
|
53
|
+
`/nodes/{node}/qemu/{vmid}/config`. DELETE is `destroy_vm` at
|
|
54
|
+
`/nodes/{node}/qemu/{vmid}`. Absence is `QemuConfigNotFound` from AbstractConfig's
|
|
55
|
+
missing `qemu-server/{vmid}.conf` sentence, and a cluster guest index check refuses
|
|
56
|
+
a vmid held elsewhere before create.
|
|
52
57
|
|
|
53
58
|
Complete vendor coverage additionally requires a census of families not yet modeled
|
|
54
|
-
as resources. The
|
|
55
|
-
larger completion claim. No
|
|
59
|
+
as resources. The 28 migrated families above are a transport milestone, not that
|
|
60
|
+
larger completion claim. No changes were pushed or submitted to upstream repositories.
|
|
56
61
|
|
|
57
62
|
Existing NodeNetwork and ZfsPool adoption/reconcile reads still contain broad failure
|
|
58
63
|
folds. Their strict diff reads do not remove that separate conformance gap. CephFs
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@homeflare/alchemy",
|
|
3
|
-
"version": "0.37.
|
|
3
|
+
"version": "0.37.7",
|
|
4
4
|
"description": "Custom Alchemy providers for Cloudflare, Proxmox, OpenBao, Forgejo, Talos, launchd and Caddy, and a verifier that proves adoptions are no-ops.",
|
|
5
5
|
"homepage": "https://github.com/taslabs-net/homeflare-kit/tree/main/packages/alchemy#readme",
|
|
6
6
|
"bugs": "https://github.com/taslabs-net/homeflare-kit/issues",
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"@distilled.cloud/openbao": "npm:@homeflare/distilled-openbao@0.2.2",
|
|
126
126
|
"@distilled.cloud/opnsense": "npm:@homeflare/distilled-opnsense@0.2.0",
|
|
127
127
|
"@distilled.cloud/paperless-ngx": "npm:@homeflare/distilled-paperless-ngx@0.3.0",
|
|
128
|
-
"@distilled.cloud/proxmox": "npm:@homeflare/distilled-proxmox@0.3.
|
|
128
|
+
"@distilled.cloud/proxmox": "npm:@homeflare/distilled-proxmox@0.3.3",
|
|
129
129
|
"@distilled.cloud/proxmox-backup": "npm:@homeflare/distilled-proxmox-backup@0.3.1",
|
|
130
130
|
"@distilled.cloud/unifi-network": "npm:@homeflare/distilled-unifi-network@0.2.0"
|
|
131
131
|
},
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** Existing alias normalization and forms, independent of the named SDK transport. */
|
|
2
|
+
import type { FirewallAliasAttributes, FirewallAliasProps } from './firewall-alias.ts';
|
|
3
|
+
import type { PveSpec } from './resource-spec.ts';
|
|
4
|
+
import { body, cidr, comment } from './firewall-alias-form.ts';
|
|
5
|
+
import { int, text } from './values.ts';
|
|
6
|
+
|
|
7
|
+
export const firewallAliasSpec = {
|
|
8
|
+
/** The SDK read refuses malformed successful payloads before applying these normalizers. */
|
|
9
|
+
attributes: (live, props) => {
|
|
10
|
+
const address = cidr(live['cidr']);
|
|
11
|
+
return {
|
|
12
|
+
cidr: address,
|
|
13
|
+
comment: comment(live['comment']),
|
|
14
|
+
ipversion: int(live['ipversion'], 0),
|
|
15
|
+
/** The read checks identity; the stored spelling is preserved for display. */
|
|
16
|
+
name: text(live['name'], props.name),
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
collection: () => 'cluster/firewall/aliases',
|
|
20
|
+
createForm: (props) => ({ ...body(props), name: props.name }),
|
|
21
|
+
/**
|
|
22
|
+
* ⚠️ EXACTLY THE TWO FIELDS A PUT CAN PUT BACK, both sides through the same normalisers. `name`
|
|
23
|
+
* is identity and case-only drift (see the header); `ipversion` is derived and unwritable.
|
|
24
|
+
* Comparing either would report an update that no update can settle.
|
|
25
|
+
*/
|
|
26
|
+
/** The vendor rules these forms are checked against at plan time — resource-spec.ts. */
|
|
27
|
+
endpoint: {
|
|
28
|
+
create: 'pve:POST /cluster/firewall/aliases',
|
|
29
|
+
update: 'pve:PUT /cluster/firewall/aliases/{name}',
|
|
30
|
+
},
|
|
31
|
+
matches: (attributes, props) =>
|
|
32
|
+
attributes.cidr === cidr(props.cidr) && attributes.comment === comment(props.comment),
|
|
33
|
+
/**
|
|
34
|
+
* ⚠️ UNESCAPED ON PURPOSE: `pve-fw-alias` admits only `[A-Za-z][A-Za-z0-9\-\_]+`, so there is no
|
|
35
|
+
* character here that a URL would need to encode, and PVE lowercases the segment on arrival.
|
|
36
|
+
*/
|
|
37
|
+
path: (props) => `cluster/firewall/aliases/${props.name}`,
|
|
38
|
+
updateForm: body,
|
|
39
|
+
} satisfies PveSpec<FirewallAliasProps, FirewallAliasAttributes>;
|
|
@@ -106,7 +106,7 @@ export const comment = (value: unknown) => {
|
|
|
106
106
|
* this form would be a second, invisible identity for the object, set from a field the resource
|
|
107
107
|
* does not have.
|
|
108
108
|
*/
|
|
109
|
-
export const body = (props: FirewallAliasProps): Record<string, string> => {
|
|
109
|
+
export const body = (props: FirewallAliasProps): Record<string, string> & { cidr: string } => {
|
|
110
110
|
const note = comment(props.comment);
|
|
111
111
|
return { cidr: cidr(props.cidr), ...(note === '' ? {} : { comment: note }) };
|
|
112
112
|
};
|