Summary
Part of #488. Extract src/registry/ into a standalone @libscope/registry package. The registry depends almost entirely on Node.js stdlib and is one of the cleanest extractions in the split.
Problem / Motivation
The registry system (git-backed pack sync, publish, resolve, checksum) is a self-contained utility with minimal dependencies on the rest of libscope. It's unrelated to semantic search or document indexing from a consumer's perspective, and shouldn't be bundled with the core search engine.
Proposed Solution
Move src/registry/ into packages/registry/ with its own package.json. The registry depends on @libscope/core only for pack import/export — that interface should be kept minimal.
Acceptance Criteria
Out of Scope
- Changes to the registry format or protocol
- Adding new registry features
Technical Notes
src/registry/ contains: config.ts, git.ts, sync.ts, publish.ts, search.ts, checksum.ts, resolve.ts
- Key stdlib deps:
fs, path, crypto, zlib — no external npm deps beyond @libscope/core
- Registry names validation:
/^[a-zA-Z0-9_-]+$/, 2–64 chars
- Git URLs: https://, ssh://, or git@host:path (no embedded credentials)
Summary
Part of #488. Extract
src/registry/into a standalone@libscope/registrypackage. The registry depends almost entirely on Node.js stdlib and is one of the cleanest extractions in the split.Problem / Motivation
The registry system (git-backed pack sync, publish, resolve, checksum) is a self-contained utility with minimal dependencies on the rest of libscope. It's unrelated to semantic search or document indexing from a consumer's perspective, and shouldn't be bundled with the core search engine.
Proposed Solution
Move
src/registry/intopackages/registry/with its ownpackage.json. The registry depends on@libscope/coreonly for pack import/export — that interface should be kept minimal.Acceptance Criteria
@libscope/registrybuilds and tests pass independently@libscope/core(for pack import/export) and Node.js stdlib (fs, path, crypto, zlib)libscope registry add,libscope pack install, etc.) work correctly..,/,\, null bytes) is preserved and testedOut of Scope
Technical Notes
src/registry/contains:config.ts,git.ts,sync.ts,publish.ts,search.ts,checksum.ts,resolve.tsfs,path,crypto,zlib— no external npm deps beyond@libscope/core/^[a-zA-Z0-9_-]+$/, 2–64 chars