Overview
Package Manager OverviewLink
Sierra Dev's package manager provides APT-like functionality for installing, managing, and updating invoker scripts from GitHub repositories. It is designed to be robust, type-safe, and easy to use.
ArchitectureLink
The package manager consists of several modular components working together:
graph LR
A[GitHub Repos] -->|registry.json| B[Repository Manager]
B --> C[Package Registry]
C --> D[Package Search]
C --> E[Package Installer]
E --> F[Type Validator]
F --> G[Environment]
Core ComponentsLink
1. Repository ManagerLink
Manages GitHub repository sources for package discovery. It handles: - Adding/removing repository sources - Fetching and caching package registries - Managing source priorities - Validating repository structure
| Python | |
|---|---|
2. Package RegistryLink
The central registry for package metadata and search. It provides: - Fast search by name, description, or tags - Filtering by category and source - Version tracking and comparison - Metadata aggregation
| Python | |
|---|---|
3. Package InstallerLink
Handles the lifecycle of packages on the local system: - Downloading scripts from GitHub - Resolving dependencies - Running type safety checks - Managing the installed packages manifest
| Python | |
|---|---|
4. Type ValidatorLink
Ensures that all installed scripts meet Sierra Dev's strict quality standards: - AST-based analysis: Checks code without executing it - Type annotations: Verifies arguments and return types - Safety checks: Detects unsafe patterns
| Python | |
|---|---|
Repository StructureLink
A Sierra Dev repository on GitHub follows a strict structure to ensure compatibility:
| Text Only | |
|---|---|
registry.json ExampleLink
Local StorageLink
Sierra Dev maintains its state in the user's home directory (~/.sierra/):
sources.json: List of configured repositories and their priorities.installed.json: Manifest of all installed packages and their versions.cache/: Local cache of registries and downloaded files to speed up operations.
Key FeaturesLink
🔄 Auto-UpdatesLink
Sierra Dev can check for updates across all installed packages and upgrade them with a single command:
| Bash | |
|---|---|
🛡️ Type SafetyLink
Every script is validated before installation. If a script lacks type hints or uses unsafe patterns, Sierra Dev will warn you or refuse installation (unless --force is used).
🔍 Smart SearchLink
Search is fuzzy and context-aware. You can search by:
- Keyword: sierra-dev search osint
- Tag: sierra-dev search --tag email
- Category: sierra-dev search --category recon
📦 Dependency ManagementLink
Packages can declare dependencies (e.g., Python libraries). Sierra Dev will notify you of required dependencies upon installation.
Next StepsLink
- CLI Commands Reference - Master the 14 CLI commands
- Creating Invokers - Learn to build your own packages
- API Reference - Integrate Sierra Dev into your Python tools