Module registry

Module registry 

Source
Expand description

Shared, cross-version named-agent registry. File-per-agent JSON tree at <shared_home>/agents/registry/. See docs/specs/SPEC_SHARED_AGENT_REGISTRY_2026_05_12.md.

PR A — Parallel-write only. The Store instance_* mutators call Registry::{upsert,retire,unretire,hard_delete} after their SQL execute() succeeds. Frontend RPCs still source rows from SQLite; the registry files are populated but not yet read.

MIN_SUPPORTED_SCHEMA, ValidationError, RegistryError, and Registry::list_active are part of the registry’s stable surface but are only consumed by tests + by PR B’s read-path swap. The allow(dead_code) on the re-exports keeps that intent explicit.

Re-exports§

pub use migrate::backfill_source_bases_once;
pub use migrate::migrate_from_sqlite_once;
pub use migrate::MigrateStats;
pub use migrate::SourceBackfillStats;
pub use paths::resolve_shared_definitions_dir;
pub use paths::resolve_shared_registry_dir;
pub use paths::resolve_shared_transcripts_dir;
pub use def_migrate::migrate_definitions_global_once;
pub use def_migrate::DefMigrateStats;
pub use def_schema::DefContentBlob;
pub use def_schema::DefSkillBlob;
pub use def_schema::DefValidationError;
pub use def_schema::DefinitionRecord;
pub use def_schema::DefinitionRecordV1;
pub use def_schema::DEF_MAX_SUPPORTED_SCHEMA;
pub use def_schema::DEF_MIN_SUPPORTED_SCHEMA;
pub use def_store::DefStoreError;
pub use def_store::DefinitionStore;
pub use schema::NamedAgentRecord;
pub use schema::NamedAgentRecordV1;
pub use schema::ValidationError;
pub use schema::MAX_SUPPORTED_SCHEMA;
pub use schema::MIN_SUPPORTED_SCHEMA;
pub use store::Registry;
pub use store::RegistryError;

Modules§

atomic 🔒
Atomic file write + rename helpers. All registry mutations route through these so readers never observe a half-written file.
def_migrate 🔒
Global migration: backfill user-agent DEFINITIONS (with their content + skills) from every channel’s per-version objects.db — and every dev/ branch DB — into the GLOBAL definition store, so EXISTING agents become cross-channel without waiting for the next edit. Read-only on every scanned SQLite.
def_schema 🔒
Global agent-definition registry file format + per-row validation.
def_store 🔒
DefinitionStore — file-per-definition CRUD on <root>/<id>.json with a sibling retired/<id>.json tombstone tree.
migrate 🔒
One-shot SQLite → file-registry migration for named instances.
paths 🔒
Resolve the shared registry directory (<shared_home>/agents/registry/).
schema 🔒
Registry file format + per-row validation.
store 🔒
Registry — file-per-agent CRUD on <root>/<uuid>.json with a sibling retired/<uuid>.json tombstone tree.