bin/get.js — be get as a pure-JS extension
Reproduce native be get as bin/get.js + bin/lib/*, pure JS over JABC (libdog+abc ONLY, no keeper/sniff/graf dog linked), output-equivalent to native across all remotes and change kinds. Validates the wire SDK and extends the JS-027 read-only store reader to the FETCH + write + checkout path.
be get adds the WIRE fetch, pack INGEST (keeper write side), and CHECKOUT (materialise the fetched tree → wt) + REFS/wtlog append.
keeper/ (unlinkable from JABC), so it is
reimplemented in JS exactly as status.js reimplemented sniff.
be get <remote> parity: same op-summary/banner AND same resulting wt state
as native, for file://, ssh://(//host), be:// remotes.
abc ONLY; jabc link unchanged. Tests in test/js/get/, reusable
helpers in test/js/lib/; oracle = native be get. Method: Issues.
write side), JS-041 checkout + bin/get.js entry. Read libs reused as-is.
(main tree, uncommitted). Full-fetch (no haves) ships OFS-only verbatim, so JS-035..037 leaves are NOT on the get path (only push/thin need them).
test/js/get/{file,be,git} × {new,del,mod} ×
{file,dir} — stdout (time-normalised) + wt content + be status all match native. ctest be-js-get-{file,be,git} 3/3 (be/git gated WITH_SSH).
..be.idx wtlog sidecar not written (status works without it; excludedfrom the tree diff as store metadata).
bin/get.js + bin/lib/{pkt,wire,ingest,checkout}.js reproduce be get
output-equivalently for file:/be:/ssh-git × new/del/mod files+dirs. Key find (JS-040): native keeper needs the prebuilt <ron64>.keeper.idx (a sorted wh128 run: PACK-summary entry + per-object key=hashlet60|type, val=(off<<24)|(file_id<<4)|1) — a bare .keeper reads unk. Built it byte-identical via pack.scan + abc.book/merge. Tests in test/js/get.
be-js-get-* 3/3.