Parent Epic
#555
Milestone
1 — Foundation Services
Summary
Convert fileCheckers.ts from callback-based file I/O to @effect/platform FileSystem with typed errors.
Problem
checkExists() mixes file I/O with architecture validation
getBinaryArchitecture() uses callback-based file reading for binary header inspection
downloadBinsIfMissing() interleaves interactive prompts, file I/O, and subprocess invocation with untyped error handling
@effect/platform FileSystem is already in the dependency tree but unused here
Scope
Files
- Modify:
src/cli/internal/fileCheckers.ts
Depends On
Nothing — can start immediately.
Size
S (~150 LOC removed, ~100 LOC added)
Parent Epic
#555
Milestone
1 — Foundation Services
Summary
Convert
fileCheckers.tsfrom callback-based file I/O to@effect/platformFileSystem with typed errors.Problem
checkExists()mixes file I/O with architecture validationgetBinaryArchitecture()uses callback-based file reading for binary header inspectiondownloadBinsIfMissing()interleaves interactive prompts, file I/O, and subprocess invocation with untyped error handling@effect/platformFileSystem is already in the dependency tree but unused hereScope
checkExiststo useFileSystem.exists+FileSystem.accessgetBinaryArchitectureto useFileSystem.readFileStringorFileSystem.readFileCheckError,BinaryArchitectureErrortagged error typesdownloadBinsIfMissingtoEffect.genwith proper error channelFiles
src/cli/internal/fileCheckers.tsDepends On
Nothing — can start immediately.
Size
S (~150 LOC removed, ~100 LOC added)